home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 May / CMCD0504.ISO / Software / Freeware / Programare / dspack / DSPACK231.exe / {app} / include / wmsdkidl.h < prev    next >
Encoding:
C/C++ Source or Header  |  2003-01-01  |  643.8 KB  |  19,917 lines

  1.  
  2.  
  3. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  4.  
  5.  
  6.  /* File created by MIDL compiler version 6.00.0361 */
  7. /* Compiler settings for wmsdkidl.idl:
  8.     Oicf, W1, Zp8, env=Win32 (32b run)
  9.     protocol : dce , ms_ext, c_ext, robust
  10.     error checks: allocation ref bounds_check enum stub_data 
  11.     VC __declspec() decoration level: 
  12.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  13.          DECLSPEC_UUID(), MIDL_INTERFACE()
  14. */
  15. //@@MIDL_FILE_HEADING(  )
  16.  
  17. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  18.  
  19.  
  20. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  21. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  22. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  23. #endif
  24.  
  25. #include "rpc.h"
  26. #include "rpcndr.h"
  27.  
  28. #ifndef __RPCNDR_H_VERSION__
  29. #error this stub requires an updated version of <rpcndr.h>
  30. #endif // __RPCNDR_H_VERSION__
  31.  
  32. #ifndef COM_NO_WINDOWS_H
  33. #include "windows.h"
  34. #include "ole2.h"
  35. #endif /*COM_NO_WINDOWS_H*/
  36.  
  37. #ifndef __wmsdkidl_h__
  38. #define __wmsdkidl_h__
  39.  
  40. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  41. #pragma once
  42. #endif
  43.  
  44. /* Forward Declarations */ 
  45.  
  46. #ifndef __IWMMediaProps_FWD_DEFINED__
  47. #define __IWMMediaProps_FWD_DEFINED__
  48. typedef interface IWMMediaProps IWMMediaProps;
  49. #endif     /* __IWMMediaProps_FWD_DEFINED__ */
  50.  
  51.  
  52. #ifndef __IWMVideoMediaProps_FWD_DEFINED__
  53. #define __IWMVideoMediaProps_FWD_DEFINED__
  54. typedef interface IWMVideoMediaProps IWMVideoMediaProps;
  55. #endif     /* __IWMVideoMediaProps_FWD_DEFINED__ */
  56.  
  57.  
  58. #ifndef __IWMWriter_FWD_DEFINED__
  59. #define __IWMWriter_FWD_DEFINED__
  60. typedef interface IWMWriter IWMWriter;
  61. #endif     /* __IWMWriter_FWD_DEFINED__ */
  62.  
  63.  
  64. #ifndef __IWMDRMWriter_FWD_DEFINED__
  65. #define __IWMDRMWriter_FWD_DEFINED__
  66. typedef interface IWMDRMWriter IWMDRMWriter;
  67. #endif     /* __IWMDRMWriter_FWD_DEFINED__ */
  68.  
  69.  
  70. #ifndef __IWMInputMediaProps_FWD_DEFINED__
  71. #define __IWMInputMediaProps_FWD_DEFINED__
  72. typedef interface IWMInputMediaProps IWMInputMediaProps;
  73. #endif     /* __IWMInputMediaProps_FWD_DEFINED__ */
  74.  
  75.  
  76. #ifndef __IWMPropertyVault_FWD_DEFINED__
  77. #define __IWMPropertyVault_FWD_DEFINED__
  78. typedef interface IWMPropertyVault IWMPropertyVault;
  79. #endif     /* __IWMPropertyVault_FWD_DEFINED__ */
  80.  
  81.  
  82. #ifndef __IWMIStreamProps_FWD_DEFINED__
  83. #define __IWMIStreamProps_FWD_DEFINED__
  84. typedef interface IWMIStreamProps IWMIStreamProps;
  85. #endif     /* __IWMIStreamProps_FWD_DEFINED__ */
  86.  
  87.  
  88. #ifndef __IWMReader_FWD_DEFINED__
  89. #define __IWMReader_FWD_DEFINED__
  90. typedef interface IWMReader IWMReader;
  91. #endif     /* __IWMReader_FWD_DEFINED__ */
  92.  
  93.  
  94. #ifndef __IWMSyncReader_FWD_DEFINED__
  95. #define __IWMSyncReader_FWD_DEFINED__
  96. typedef interface IWMSyncReader IWMSyncReader;
  97. #endif     /* __IWMSyncReader_FWD_DEFINED__ */
  98.  
  99.  
  100. #ifndef __IWMSyncReader2_FWD_DEFINED__
  101. #define __IWMSyncReader2_FWD_DEFINED__
  102. typedef interface IWMSyncReader2 IWMSyncReader2;
  103. #endif     /* __IWMSyncReader2_FWD_DEFINED__ */
  104.  
  105.  
  106. #ifndef __IWMOutputMediaProps_FWD_DEFINED__
  107. #define __IWMOutputMediaProps_FWD_DEFINED__
  108. typedef interface IWMOutputMediaProps IWMOutputMediaProps;
  109. #endif     /* __IWMOutputMediaProps_FWD_DEFINED__ */
  110.  
  111.  
  112. #ifndef __IWMStatusCallback_FWD_DEFINED__
  113. #define __IWMStatusCallback_FWD_DEFINED__
  114. typedef interface IWMStatusCallback IWMStatusCallback;
  115. #endif     /* __IWMStatusCallback_FWD_DEFINED__ */
  116.  
  117.  
  118. #ifndef __IWMReaderCallback_FWD_DEFINED__
  119. #define __IWMReaderCallback_FWD_DEFINED__
  120. typedef interface IWMReaderCallback IWMReaderCallback;
  121. #endif     /* __IWMReaderCallback_FWD_DEFINED__ */
  122.  
  123.  
  124. #ifndef __IWMCredentialCallback_FWD_DEFINED__
  125. #define __IWMCredentialCallback_FWD_DEFINED__
  126. typedef interface IWMCredentialCallback IWMCredentialCallback;
  127. #endif     /* __IWMCredentialCallback_FWD_DEFINED__ */
  128.  
  129.  
  130. #ifndef __IWMMetadataEditor_FWD_DEFINED__
  131. #define __IWMMetadataEditor_FWD_DEFINED__
  132. typedef interface IWMMetadataEditor IWMMetadataEditor;
  133. #endif     /* __IWMMetadataEditor_FWD_DEFINED__ */
  134.  
  135.  
  136. #ifndef __IWMMetadataEditor2_FWD_DEFINED__
  137. #define __IWMMetadataEditor2_FWD_DEFINED__
  138. typedef interface IWMMetadataEditor2 IWMMetadataEditor2;
  139. #endif     /* __IWMMetadataEditor2_FWD_DEFINED__ */
  140.  
  141.  
  142. #ifndef __IWMDRMEditor_FWD_DEFINED__
  143. #define __IWMDRMEditor_FWD_DEFINED__
  144. typedef interface IWMDRMEditor IWMDRMEditor;
  145. #endif     /* __IWMDRMEditor_FWD_DEFINED__ */
  146.  
  147.  
  148. #ifndef __IWMHeaderInfo_FWD_DEFINED__
  149. #define __IWMHeaderInfo_FWD_DEFINED__
  150. typedef interface IWMHeaderInfo IWMHeaderInfo;
  151. #endif     /* __IWMHeaderInfo_FWD_DEFINED__ */
  152.  
  153.  
  154. #ifndef __IWMHeaderInfo2_FWD_DEFINED__
  155. #define __IWMHeaderInfo2_FWD_DEFINED__
  156. typedef interface IWMHeaderInfo2 IWMHeaderInfo2;
  157. #endif     /* __IWMHeaderInfo2_FWD_DEFINED__ */
  158.  
  159.  
  160. #ifndef __IWMHeaderInfo3_FWD_DEFINED__
  161. #define __IWMHeaderInfo3_FWD_DEFINED__
  162. typedef interface IWMHeaderInfo3 IWMHeaderInfo3;
  163. #endif     /* __IWMHeaderInfo3_FWD_DEFINED__ */
  164.  
  165.  
  166. #ifndef __IWMProfileManager_FWD_DEFINED__
  167. #define __IWMProfileManager_FWD_DEFINED__
  168. typedef interface IWMProfileManager IWMProfileManager;
  169. #endif     /* __IWMProfileManager_FWD_DEFINED__ */
  170.  
  171.  
  172. #ifndef __IWMProfileManager2_FWD_DEFINED__
  173. #define __IWMProfileManager2_FWD_DEFINED__
  174. typedef interface IWMProfileManager2 IWMProfileManager2;
  175. #endif     /* __IWMProfileManager2_FWD_DEFINED__ */
  176.  
  177.  
  178. #ifndef __IWMProfileManagerLanguage_FWD_DEFINED__
  179. #define __IWMProfileManagerLanguage_FWD_DEFINED__
  180. typedef interface IWMProfileManagerLanguage IWMProfileManagerLanguage;
  181. #endif     /* __IWMProfileManagerLanguage_FWD_DEFINED__ */
  182.  
  183.  
  184. #ifndef __IWMProfile_FWD_DEFINED__
  185. #define __IWMProfile_FWD_DEFINED__
  186. typedef interface IWMProfile IWMProfile;
  187. #endif     /* __IWMProfile_FWD_DEFINED__ */
  188.  
  189.  
  190. #ifndef __IWMProfile2_FWD_DEFINED__
  191. #define __IWMProfile2_FWD_DEFINED__
  192. typedef interface IWMProfile2 IWMProfile2;
  193. #endif     /* __IWMProfile2_FWD_DEFINED__ */
  194.  
  195.  
  196. #ifndef __IWMProfile3_FWD_DEFINED__
  197. #define __IWMProfile3_FWD_DEFINED__
  198. typedef interface IWMProfile3 IWMProfile3;
  199. #endif     /* __IWMProfile3_FWD_DEFINED__ */
  200.  
  201.  
  202. #ifndef __IWMStreamConfig_FWD_DEFINED__
  203. #define __IWMStreamConfig_FWD_DEFINED__
  204. typedef interface IWMStreamConfig IWMStreamConfig;
  205. #endif     /* __IWMStreamConfig_FWD_DEFINED__ */
  206.  
  207.  
  208. #ifndef __IWMStreamConfig2_FWD_DEFINED__
  209. #define __IWMStreamConfig2_FWD_DEFINED__
  210. typedef interface IWMStreamConfig2 IWMStreamConfig2;
  211. #endif     /* __IWMStreamConfig2_FWD_DEFINED__ */
  212.  
  213.  
  214. #ifndef __IWMStreamConfig3_FWD_DEFINED__
  215. #define __IWMStreamConfig3_FWD_DEFINED__
  216. typedef interface IWMStreamConfig3 IWMStreamConfig3;
  217. #endif     /* __IWMStreamConfig3_FWD_DEFINED__ */
  218.  
  219.  
  220. #ifndef __IWMPacketSize_FWD_DEFINED__
  221. #define __IWMPacketSize_FWD_DEFINED__
  222. typedef interface IWMPacketSize IWMPacketSize;
  223. #endif     /* __IWMPacketSize_FWD_DEFINED__ */
  224.  
  225.  
  226. #ifndef __IWMPacketSize2_FWD_DEFINED__
  227. #define __IWMPacketSize2_FWD_DEFINED__
  228. typedef interface IWMPacketSize2 IWMPacketSize2;
  229. #endif     /* __IWMPacketSize2_FWD_DEFINED__ */
  230.  
  231.  
  232. #ifndef __IWMStreamList_FWD_DEFINED__
  233. #define __IWMStreamList_FWD_DEFINED__
  234. typedef interface IWMStreamList IWMStreamList;
  235. #endif     /* __IWMStreamList_FWD_DEFINED__ */
  236.  
  237.  
  238. #ifndef __IWMMutualExclusion_FWD_DEFINED__
  239. #define __IWMMutualExclusion_FWD_DEFINED__
  240. typedef interface IWMMutualExclusion IWMMutualExclusion;
  241. #endif     /* __IWMMutualExclusion_FWD_DEFINED__ */
  242.  
  243.  
  244. #ifndef __IWMMutualExclusion2_FWD_DEFINED__
  245. #define __IWMMutualExclusion2_FWD_DEFINED__
  246. typedef interface IWMMutualExclusion2 IWMMutualExclusion2;
  247. #endif     /* __IWMMutualExclusion2_FWD_DEFINED__ */
  248.  
  249.  
  250. #ifndef __IWMBandwidthSharing_FWD_DEFINED__
  251. #define __IWMBandwidthSharing_FWD_DEFINED__
  252. typedef interface IWMBandwidthSharing IWMBandwidthSharing;
  253. #endif     /* __IWMBandwidthSharing_FWD_DEFINED__ */
  254.  
  255.  
  256. #ifndef __IWMStreamPrioritization_FWD_DEFINED__
  257. #define __IWMStreamPrioritization_FWD_DEFINED__
  258. typedef interface IWMStreamPrioritization IWMStreamPrioritization;
  259. #endif     /* __IWMStreamPrioritization_FWD_DEFINED__ */
  260.  
  261.  
  262. #ifndef __IWMWriterAdvanced_FWD_DEFINED__
  263. #define __IWMWriterAdvanced_FWD_DEFINED__
  264. typedef interface IWMWriterAdvanced IWMWriterAdvanced;
  265. #endif     /* __IWMWriterAdvanced_FWD_DEFINED__ */
  266.  
  267.  
  268. #ifndef __IWMWriterAdvanced2_FWD_DEFINED__
  269. #define __IWMWriterAdvanced2_FWD_DEFINED__
  270. typedef interface IWMWriterAdvanced2 IWMWriterAdvanced2;
  271. #endif     /* __IWMWriterAdvanced2_FWD_DEFINED__ */
  272.  
  273.  
  274. #ifndef __IWMWriterAdvanced3_FWD_DEFINED__
  275. #define __IWMWriterAdvanced3_FWD_DEFINED__
  276. typedef interface IWMWriterAdvanced3 IWMWriterAdvanced3;
  277. #endif     /* __IWMWriterAdvanced3_FWD_DEFINED__ */
  278.  
  279.  
  280. #ifndef __IWMWriterPreprocess_FWD_DEFINED__
  281. #define __IWMWriterPreprocess_FWD_DEFINED__
  282. typedef interface IWMWriterPreprocess IWMWriterPreprocess;
  283. #endif     /* __IWMWriterPreprocess_FWD_DEFINED__ */
  284.  
  285.  
  286. #ifndef __IWMWriterPostViewCallback_FWD_DEFINED__
  287. #define __IWMWriterPostViewCallback_FWD_DEFINED__
  288. typedef interface IWMWriterPostViewCallback IWMWriterPostViewCallback;
  289. #endif     /* __IWMWriterPostViewCallback_FWD_DEFINED__ */
  290.  
  291.  
  292. #ifndef __IWMWriterPostView_FWD_DEFINED__
  293. #define __IWMWriterPostView_FWD_DEFINED__
  294. typedef interface IWMWriterPostView IWMWriterPostView;
  295. #endif     /* __IWMWriterPostView_FWD_DEFINED__ */
  296.  
  297.  
  298. #ifndef __IWMWriterSink_FWD_DEFINED__
  299. #define __IWMWriterSink_FWD_DEFINED__
  300. typedef interface IWMWriterSink IWMWriterSink;
  301. #endif     /* __IWMWriterSink_FWD_DEFINED__ */
  302.  
  303.  
  304. #ifndef __IWMRegisterCallback_FWD_DEFINED__
  305. #define __IWMRegisterCallback_FWD_DEFINED__
  306. typedef interface IWMRegisterCallback IWMRegisterCallback;
  307. #endif     /* __IWMRegisterCallback_FWD_DEFINED__ */
  308.  
  309.  
  310. #ifndef __IWMWriterFileSink_FWD_DEFINED__
  311. #define __IWMWriterFileSink_FWD_DEFINED__
  312. typedef interface IWMWriterFileSink IWMWriterFileSink;
  313. #endif     /* __IWMWriterFileSink_FWD_DEFINED__ */
  314.  
  315.  
  316. #ifndef __IWMWriterFileSink2_FWD_DEFINED__
  317. #define __IWMWriterFileSink2_FWD_DEFINED__
  318. typedef interface IWMWriterFileSink2 IWMWriterFileSink2;
  319. #endif     /* __IWMWriterFileSink2_FWD_DEFINED__ */
  320.  
  321.  
  322. #ifndef __IWMWriterFileSink3_FWD_DEFINED__
  323. #define __IWMWriterFileSink3_FWD_DEFINED__
  324. typedef interface IWMWriterFileSink3 IWMWriterFileSink3;
  325. #endif     /* __IWMWriterFileSink3_FWD_DEFINED__ */
  326.  
  327.  
  328. #ifndef __IWMWriterNetworkSink_FWD_DEFINED__
  329. #define __IWMWriterNetworkSink_FWD_DEFINED__
  330. typedef interface IWMWriterNetworkSink IWMWriterNetworkSink;
  331. #endif     /* __IWMWriterNetworkSink_FWD_DEFINED__ */
  332.  
  333.  
  334. #ifndef __IWMClientConnections_FWD_DEFINED__
  335. #define __IWMClientConnections_FWD_DEFINED__
  336. typedef interface IWMClientConnections IWMClientConnections;
  337. #endif     /* __IWMClientConnections_FWD_DEFINED__ */
  338.  
  339.  
  340. #ifndef __IWMClientConnections2_FWD_DEFINED__
  341. #define __IWMClientConnections2_FWD_DEFINED__
  342. typedef interface IWMClientConnections2 IWMClientConnections2;
  343. #endif     /* __IWMClientConnections2_FWD_DEFINED__ */
  344.  
  345.  
  346. #ifndef __IWMReaderAdvanced_FWD_DEFINED__
  347. #define __IWMReaderAdvanced_FWD_DEFINED__
  348. typedef interface IWMReaderAdvanced IWMReaderAdvanced;
  349. #endif     /* __IWMReaderAdvanced_FWD_DEFINED__ */
  350.  
  351.  
  352. #ifndef __IWMReaderAdvanced2_FWD_DEFINED__
  353. #define __IWMReaderAdvanced2_FWD_DEFINED__
  354. typedef interface IWMReaderAdvanced2 IWMReaderAdvanced2;
  355. #endif     /* __IWMReaderAdvanced2_FWD_DEFINED__ */
  356.  
  357.  
  358. #ifndef __IWMReaderAdvanced3_FWD_DEFINED__
  359. #define __IWMReaderAdvanced3_FWD_DEFINED__
  360. typedef interface IWMReaderAdvanced3 IWMReaderAdvanced3;
  361. #endif     /* __IWMReaderAdvanced3_FWD_DEFINED__ */
  362.  
  363.  
  364. #ifndef __IWMReaderAdvanced4_FWD_DEFINED__
  365. #define __IWMReaderAdvanced4_FWD_DEFINED__
  366. typedef interface IWMReaderAdvanced4 IWMReaderAdvanced4;
  367. #endif     /* __IWMReaderAdvanced4_FWD_DEFINED__ */
  368.  
  369.  
  370. #ifndef __IWMReaderAllocatorEx_FWD_DEFINED__
  371. #define __IWMReaderAllocatorEx_FWD_DEFINED__
  372. typedef interface IWMReaderAllocatorEx IWMReaderAllocatorEx;
  373. #endif     /* __IWMReaderAllocatorEx_FWD_DEFINED__ */
  374.  
  375.  
  376. #ifndef __IWMReaderTypeNegotiation_FWD_DEFINED__
  377. #define __IWMReaderTypeNegotiation_FWD_DEFINED__
  378. typedef interface IWMReaderTypeNegotiation IWMReaderTypeNegotiation;
  379. #endif     /* __IWMReaderTypeNegotiation_FWD_DEFINED__ */
  380.  
  381.  
  382. #ifndef __IWMReaderCallbackAdvanced_FWD_DEFINED__
  383. #define __IWMReaderCallbackAdvanced_FWD_DEFINED__
  384. typedef interface IWMReaderCallbackAdvanced IWMReaderCallbackAdvanced;
  385. #endif     /* __IWMReaderCallbackAdvanced_FWD_DEFINED__ */
  386.  
  387.  
  388. #ifndef __IWMDRMReader_FWD_DEFINED__
  389. #define __IWMDRMReader_FWD_DEFINED__
  390. typedef interface IWMDRMReader IWMDRMReader;
  391. #endif     /* __IWMDRMReader_FWD_DEFINED__ */
  392.  
  393.  
  394. #ifndef __IWMReaderNetworkConfig_FWD_DEFINED__
  395. #define __IWMReaderNetworkConfig_FWD_DEFINED__
  396. typedef interface IWMReaderNetworkConfig IWMReaderNetworkConfig;
  397. #endif     /* __IWMReaderNetworkConfig_FWD_DEFINED__ */
  398.  
  399.  
  400. #ifndef __IWMReaderNetworkConfig2_FWD_DEFINED__
  401. #define __IWMReaderNetworkConfig2_FWD_DEFINED__
  402. typedef interface IWMReaderNetworkConfig2 IWMReaderNetworkConfig2;
  403. #endif     /* __IWMReaderNetworkConfig2_FWD_DEFINED__ */
  404.  
  405.  
  406. #ifndef __IWMReaderStreamClock_FWD_DEFINED__
  407. #define __IWMReaderStreamClock_FWD_DEFINED__
  408. typedef interface IWMReaderStreamClock IWMReaderStreamClock;
  409. #endif     /* __IWMReaderStreamClock_FWD_DEFINED__ */
  410.  
  411.  
  412. #ifndef __IWMIndexer_FWD_DEFINED__
  413. #define __IWMIndexer_FWD_DEFINED__
  414. typedef interface IWMIndexer IWMIndexer;
  415. #endif     /* __IWMIndexer_FWD_DEFINED__ */
  416.  
  417.  
  418. #ifndef __IWMIndexer2_FWD_DEFINED__
  419. #define __IWMIndexer2_FWD_DEFINED__
  420. typedef interface IWMIndexer2 IWMIndexer2;
  421. #endif     /* __IWMIndexer2_FWD_DEFINED__ */
  422.  
  423.  
  424. #ifndef __IWMLicenseBackup_FWD_DEFINED__
  425. #define __IWMLicenseBackup_FWD_DEFINED__
  426. typedef interface IWMLicenseBackup IWMLicenseBackup;
  427. #endif     /* __IWMLicenseBackup_FWD_DEFINED__ */
  428.  
  429.  
  430. #ifndef __IWMLicenseRestore_FWD_DEFINED__
  431. #define __IWMLicenseRestore_FWD_DEFINED__
  432. typedef interface IWMLicenseRestore IWMLicenseRestore;
  433. #endif     /* __IWMLicenseRestore_FWD_DEFINED__ */
  434.  
  435.  
  436. #ifndef __IWMBackupRestoreProps_FWD_DEFINED__
  437. #define __IWMBackupRestoreProps_FWD_DEFINED__
  438. typedef interface IWMBackupRestoreProps IWMBackupRestoreProps;
  439. #endif     /* __IWMBackupRestoreProps_FWD_DEFINED__ */
  440.  
  441.  
  442. #ifndef __IWMCodecInfo_FWD_DEFINED__
  443. #define __IWMCodecInfo_FWD_DEFINED__
  444. typedef interface IWMCodecInfo IWMCodecInfo;
  445. #endif     /* __IWMCodecInfo_FWD_DEFINED__ */
  446.  
  447.  
  448. #ifndef __IWMCodecInfo2_FWD_DEFINED__
  449. #define __IWMCodecInfo2_FWD_DEFINED__
  450. typedef interface IWMCodecInfo2 IWMCodecInfo2;
  451. #endif     /* __IWMCodecInfo2_FWD_DEFINED__ */
  452.  
  453.  
  454. #ifndef __IWMCodecInfo3_FWD_DEFINED__
  455. #define __IWMCodecInfo3_FWD_DEFINED__
  456. typedef interface IWMCodecInfo3 IWMCodecInfo3;
  457. #endif     /* __IWMCodecInfo3_FWD_DEFINED__ */
  458.  
  459.  
  460. #ifndef __IWMLanguageList_FWD_DEFINED__
  461. #define __IWMLanguageList_FWD_DEFINED__
  462. typedef interface IWMLanguageList IWMLanguageList;
  463. #endif     /* __IWMLanguageList_FWD_DEFINED__ */
  464.  
  465.  
  466. #ifndef __IWMWriterPushSink_FWD_DEFINED__
  467. #define __IWMWriterPushSink_FWD_DEFINED__
  468. typedef interface IWMWriterPushSink IWMWriterPushSink;
  469. #endif     /* __IWMWriterPushSink_FWD_DEFINED__ */
  470.  
  471.  
  472. #ifndef __IWMWatermarkInfo_FWD_DEFINED__
  473. #define __IWMWatermarkInfo_FWD_DEFINED__
  474. typedef interface IWMWatermarkInfo IWMWatermarkInfo;
  475. #endif     /* __IWMWatermarkInfo_FWD_DEFINED__ */
  476.  
  477.  
  478. #ifndef __IWMReaderAccelerator_FWD_DEFINED__
  479. #define __IWMReaderAccelerator_FWD_DEFINED__
  480. typedef interface IWMReaderAccelerator IWMReaderAccelerator;
  481. #endif     /* __IWMReaderAccelerator_FWD_DEFINED__ */
  482.  
  483.  
  484. #ifndef __IWMReaderTimecode_FWD_DEFINED__
  485. #define __IWMReaderTimecode_FWD_DEFINED__
  486. typedef interface IWMReaderTimecode IWMReaderTimecode;
  487. #endif     /* __IWMReaderTimecode_FWD_DEFINED__ */
  488.  
  489.  
  490. #ifndef __IWMAddressAccess_FWD_DEFINED__
  491. #define __IWMAddressAccess_FWD_DEFINED__
  492. typedef interface IWMAddressAccess IWMAddressAccess;
  493. #endif     /* __IWMAddressAccess_FWD_DEFINED__ */
  494.  
  495.  
  496. #ifndef __IWMAddressAccess2_FWD_DEFINED__
  497. #define __IWMAddressAccess2_FWD_DEFINED__
  498. typedef interface IWMAddressAccess2 IWMAddressAccess2;
  499. #endif     /* __IWMAddressAccess2_FWD_DEFINED__ */
  500.  
  501.  
  502. #ifndef __IWMImageInfo_FWD_DEFINED__
  503. #define __IWMImageInfo_FWD_DEFINED__
  504. typedef interface IWMImageInfo IWMImageInfo;
  505. #endif     /* __IWMImageInfo_FWD_DEFINED__ */
  506.  
  507.  
  508. /* header files for imported files */
  509. #include "oaidl.h"
  510. #include "wmsbuffer.h"
  511. #include "drmexternals.h"
  512.  
  513. #ifdef __cplusplus
  514. extern "C"{
  515. #endif 
  516.  
  517. void * __RPC_USER MIDL_user_allocate(size_t);
  518. void __RPC_USER MIDL_user_free( void * ); 
  519.  
  520. /* interface __MIDL_itf_wmsdkidl_0000 */
  521. /* [local] */ 
  522.  
  523. //=========================================================================
  524. //
  525. // Microsoft Windows Media Technologies
  526. // Copyright (C) Microsoft Corporation.  All Rights Reserved.
  527. //
  528. //=========================================================================
  529. typedef unsigned __int64 QWORD;
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579. ////////////////////////////////////////////////////////////////
  580. //
  581. // These are the special case attributes that give information 
  582. // about the Windows Media file.
  583. //
  584. static const DWORD g_dwWMSpecialAttributes = 20;
  585. static const WCHAR g_wszWMDuration[] =L"Duration";
  586. static const WCHAR g_wszWMBitrate[] =L"Bitrate";
  587. static const WCHAR g_wszWMSeekable[] =L"Seekable";
  588. static const WCHAR g_wszWMStridable[] =L"Stridable";
  589. static const WCHAR g_wszWMBroadcast[] =L"Broadcast";
  590. static const WCHAR g_wszWMProtected[] =L"Is_Protected";
  591. static const WCHAR g_wszWMTrusted[] =L"Is_Trusted";
  592. static const WCHAR g_wszWMSignature_Name[] =L"Signature_Name";
  593. static const WCHAR g_wszWMHasAudio[] =L"HasAudio";
  594. static const WCHAR g_wszWMHasImage[] =L"HasImage";
  595. static const WCHAR g_wszWMHasScript[] =L"HasScript";
  596. static const WCHAR g_wszWMHasVideo[] =L"HasVideo";
  597. static const WCHAR g_wszWMCurrentBitrate[] =L"CurrentBitrate";
  598. static const WCHAR g_wszWMOptimalBitrate[] =L"OptimalBitrate";
  599. static const WCHAR g_wszWMHasAttachedImages[] =L"HasAttachedImages";
  600. static const WCHAR g_wszWMSkipBackward[] =L"Can_Skip_Backward";
  601. static const WCHAR g_wszWMSkipForward[] =L"Can_Skip_Forward";
  602. static const WCHAR g_wszWMNumberOfFrames[] =L"NumberOfFrames";
  603. static const WCHAR g_wszWMFileSize[] =L"FileSize";
  604. static const WCHAR g_wszWMHasArbitraryDataStream[] =L"HasArbitraryDataStream";
  605. static const WCHAR g_wszWMHasFileTransferStream[] =L"HasFileTransferStream";
  606. static const WCHAR g_wszWMContainerFormat[] =L"WM/ContainerFormat";
  607.  
  608. ////////////////////////////////////////////////////////////////
  609. //
  610. // The content description object supports 5 basic attributes.
  611. //
  612. static const DWORD g_dwWMContentAttributes = 5;
  613. static const WCHAR g_wszWMTitle[] =L"Title";
  614. static const WCHAR g_wszWMAuthor[] =L"Author";
  615. static const WCHAR g_wszWMDescription[] =L"Description";
  616. static const WCHAR g_wszWMRating[] =L"Rating";
  617. static const WCHAR g_wszWMCopyright[] =L"Copyright";
  618.  
  619. ////////////////////////////////////////////////////////////////
  620. //
  621. // These attributes are used to configure and query DRM settings in the reader and writer.
  622. //
  623. static const WCHAR g_wszWMUse_DRM[] = L"Use_DRM";
  624. static const WCHAR g_wszWMDRM_Flags[] = L"DRM_Flags";
  625. static const WCHAR g_wszWMDRM_Level[] = L"DRM_Level";
  626. static const WCHAR g_wszWMUse_Advanced_DRM[] = L"Use_Advanced_DRM";
  627. static const WCHAR g_wszWMDRM_KeySeed[] = L"DRM_KeySeed";
  628. static const WCHAR g_wszWMDRM_KeyID[] = L"DRM_KeyID";
  629. static const WCHAR g_wszWMDRM_ContentID[] = L"DRM_ContentID";
  630. static const WCHAR g_wszWMDRM_IndividualizedVersion[] = L"DRM_IndividualizedVersion";
  631. static const WCHAR g_wszWMDRM_LicenseAcqURL[] = L"DRM_LicenseAcqURL";
  632. static const WCHAR g_wszWMDRM_V1LicenseAcqURL[] = L"DRM_V1LicenseAcqURL";
  633. static const WCHAR g_wszWMDRM_HeaderSignPrivKey[] = L"DRM_HeaderSignPrivKey";
  634. static const WCHAR g_wszWMDRM_LASignaturePrivKey[] = L"DRM_LASignaturePrivKey";
  635. static const WCHAR g_wszWMDRM_LASignatureCert[] = L"DRM_LASignatureCert";
  636. static const WCHAR g_wszWMDRM_LASignatureLicSrvCert[] = L"DRM_LASignatureLicSrvCert";
  637. static const WCHAR g_wszWMDRM_LASignatureRootCert[] = L"DRM_LASignatureRootCert";
  638.  
  639. ////////////////////////////////////////////////////////////////
  640. //
  641. // These are the additional attributes defined in the WM attribute
  642. // namespace that give information about the content.
  643. //
  644. static const WCHAR g_wszWMAlbumTitle[] =L"WM/AlbumTitle";
  645. static const WCHAR g_wszWMTrack[] =L"WM/Track";
  646. static const WCHAR g_wszWMPromotionURL[] =L"WM/PromotionURL";
  647. static const WCHAR g_wszWMAlbumCoverURL[] =L"WM/AlbumCoverURL";
  648. static const WCHAR g_wszWMGenre[] =L"WM/Genre";
  649. static const WCHAR g_wszWMYear[] =L"WM/Year";
  650. static const WCHAR g_wszWMGenreID[] =L"WM/GenreID";
  651. static const WCHAR g_wszWMMCDI[] =L"WM/MCDI";
  652. static const WCHAR g_wszWMComposer[] =L"WM/Composer";
  653. static const WCHAR g_wszWMLyrics[] =L"WM/Lyrics";
  654. static const WCHAR g_wszWMTrackNumber[] =L"WM/TrackNumber";
  655. static const WCHAR g_wszWMToolName[] =L"WM/ToolName";
  656. static const WCHAR g_wszWMToolVersion[] =L"WM/ToolVersion";
  657. static const WCHAR g_wszWMIsVBR[] =L"IsVBR";
  658. static const WCHAR g_wszWMAlbumArtist[] =L"WM/AlbumArtist";
  659.  
  660. ////////////////////////////////////////////////////////////////
  661. //
  662. // These optional attributes may be used to give information 
  663. // about the branding of the content.
  664. //
  665. static const WCHAR g_wszWMBannerImageType[] =L"BannerImageType";
  666. static const WCHAR g_wszWMBannerImageData[] =L"BannerImageData";
  667. static const WCHAR g_wszWMBannerImageURL[] =L"BannerImageURL";
  668. static const WCHAR g_wszWMCopyrightURL[] =L"CopyrightURL";
  669. ////////////////////////////////////////////////////////////////
  670. //
  671. // Optional attributes, used to give information 
  672. // about video stream properties.
  673. //
  674. static const WCHAR g_wszWMAspectRatioX[] =L"AspectRatioX";
  675. static const WCHAR g_wszWMAspectRatioY[] =L"AspectRatioY";
  676. ////////////////////////////////////////////////////////////////
  677. //
  678. // Optional attributes, used to give information 
  679. // about the overall streaming properties of VBR files.
  680. // This attribute takes the format:
  681. //  WORD wReserved (must be 0)
  682. //  WM_LEAKY_BUCKET_PAIR pair1
  683. //  WM_LEAKY_BUCKET_PAIR pair2
  684. //  ...
  685. //
  686. static const WCHAR g_wszASFLeakyBucketPairs[] =L"ASFLeakyBucketPairs";
  687. ////////////////////////////////////////////////////////////////
  688. //
  689. // The NSC file supports the following attributes.
  690. //
  691. static const DWORD g_dwWMNSCAttributes = 5;
  692. static const WCHAR g_wszWMNSCName[] =L"NSC_Name";
  693. static const WCHAR g_wszWMNSCAddress[] =L"NSC_Address";
  694. static const WCHAR g_wszWMNSCPhone[] =L"NSC_Phone";
  695. static const WCHAR g_wszWMNSCEmail[] =L"NSC_Email";
  696. static const WCHAR g_wszWMNSCDescription[] =L"NSC_Description";
  697.  
  698. ////////////////////////////////////////////////////////////////
  699. //
  700. // Attributes introduced in V9
  701. //
  702. static const WCHAR g_wszWMWriter[] =L"WM/Writer";
  703. static const WCHAR g_wszWMConductor[] =L"WM/Conductor";
  704. static const WCHAR g_wszWMProducer[] =L"WM/Producer";
  705. static const WCHAR g_wszWMDirector[] =L"WM/Director";
  706. static const WCHAR g_wszWMContentGroupDescription[] =L"WM/ContentGroupDescription";
  707. static const WCHAR g_wszWMSubTitle[] =L"WM/SubTitle";
  708. static const WCHAR g_wszWMPartOfSet[] =L"WM/PartOfSet";
  709. static const WCHAR g_wszWMProtectionType[] =L"WM/ProtectionType";
  710. static const WCHAR g_wszWMVideoHeight[] =L"WM/VideoHeight";
  711. static const WCHAR g_wszWMVideoWidth[] =L"WM/VideoWidth";
  712. static const WCHAR g_wszWMVideoFrameRate[] =L"WM/VideoFrameRate";
  713. static const WCHAR g_wszWMMediaClassPrimaryID[] =L"WM/MediaClassPrimaryID";
  714. static const WCHAR g_wszWMMediaClassSecondaryID[] =L"WM/MediaClassSecondaryID";
  715. static const WCHAR g_wszWMPeriod[] = L"WM/Period";
  716. static const WCHAR g_wszWMCategory[] = L"WM/Category";
  717. static const WCHAR g_wszWMPicture[] =L"WM/Picture";
  718. static const WCHAR g_wszWMLyrics_Synchronised[] =L"WM/Lyrics_Synchronised";
  719. static const WCHAR g_wszWMOriginalLyricist[] =L"WM/OriginalLyricist";
  720. static const WCHAR g_wszWMOriginalArtist[] =L"WM/OriginalArtist";
  721. static const WCHAR g_wszWMOriginalAlbumTitle[] =L"WM/OriginalAlbumTitle";
  722. static const WCHAR g_wszWMOriginalReleaseYear[] =L"WM/OriginalReleaseYear";
  723. static const WCHAR g_wszWMOriginalFilename[] =L"WM/OriginalFilename";
  724. static const WCHAR g_wszWMPublisher[] =L"WM/Publisher";
  725. static const WCHAR g_wszWMEncodedBy[] =L"WM/EncodedBy";
  726. static const WCHAR g_wszWMEncodingSettings[] =L"WM/EncodingSettings";
  727. static const WCHAR g_wszWMEncodingTime[] =L"WM/EncodingTime";
  728. static const WCHAR g_wszWMAuthorURL[] =L"WM/AuthorURL";
  729. static const WCHAR g_wszWMUserWebURL[] =L"WM/UserWebURL";
  730. static const WCHAR g_wszWMAudioFileURL[] =L"WM/AudioFileURL";
  731. static const WCHAR g_wszWMAudioSourceURL[] =L"WM/AudioSourceURL";
  732. static const WCHAR g_wszWMLanguage[] =L"WM/Language";
  733. static const WCHAR g_wszWMParentalRating[] =L"WM/ParentalRating";
  734. static const WCHAR g_wszWMBeatsPerMinute[] =L"WM/BeatsPerMinute";
  735. static const WCHAR g_wszWMInitialKey[] =L"WM/InitialKey";
  736. static const WCHAR g_wszWMMood[] =L"WM/Mood";
  737. static const WCHAR g_wszWMText[] =L"WM/Text";
  738. static const WCHAR g_wszWMDVDID[] =L"WM/DVDID";
  739. static const WCHAR g_wszWMWMContentID[] =L"WM/WMContentID";
  740. static const WCHAR g_wszWMWMCollectionID[] =L"WM/WMCollectionID";
  741. static const WCHAR g_wszWMWMCollectionGroupID[] =L"WM/WMCollectionGroupID";
  742. static const WCHAR g_wszWMUniqueFileIdentifier[] =L"WM/UniqueFileIdentifier";
  743. static const WCHAR g_wszWMModifiedBy[] =L"WM/ModifiedBy";
  744. static const WCHAR g_wszWMRadioStationName[] =L"WM/RadioStationName";
  745. static const WCHAR g_wszWMRadioStationOwner[] =L"WM/RadioStationOwner";
  746. static const WCHAR g_wszWMPlaylistDelay[] =L"WM/PlaylistDelay";
  747. static const WCHAR g_wszWMCodec[] =L"WM/Codec";
  748. static const WCHAR g_wszWMDRM[] =L"WM/DRM";
  749. static const WCHAR g_wszWMISRC[] =L"WM/ISRC";
  750. static const WCHAR g_wszWMProvider[] =L"WM/Provider";
  751. static const WCHAR g_wszWMProviderRating[] =L"WM/ProviderRating";
  752. static const WCHAR g_wszWMProviderStyle[] =L"WM/ProviderStyle";
  753. static const WCHAR g_wszWMContentDistributor[] =L"WM/ContentDistributor";
  754. static const WCHAR g_wszWMSubscriptionContentID[] =L"WM/SubscriptionContentID";
  755. static const WCHAR g_wszWMWMADRCPeakReference[] =L"WM/WMADRCPeakReference";
  756. static const WCHAR g_wszWMWMADRCPeakTarget[] =L"WM/WMADRCPeakTarget";
  757. static const WCHAR g_wszWMWMADRCAverageReference[] =L"WM/WMADRCAverageReference";
  758. static const WCHAR g_wszWMWMADRCAverageTarget[] =L"WM/WMADRCAverageTarget";
  759. ////////////////////////////////////////////////////////////////
  760. //
  761. // These are setting names for use in Get/SetOutputSetting
  762. //
  763. static const WCHAR g_wszEarlyDataDelivery[] =L"EarlyDataDelivery";
  764. static const WCHAR g_wszJustInTimeDecode[] =L"JustInTimeDecode";
  765. static const WCHAR g_wszSingleOutputBuffer[] =L"SingleOutputBuffer";
  766. static const WCHAR g_wszSoftwareScaling[] =L"SoftwareScaling";
  767. static const WCHAR g_wszDeliverOnReceive[] =L"DeliverOnReceive";
  768. static const WCHAR g_wszScrambledAudio[] =L"ScrambledAudio";
  769. static const WCHAR g_wszDedicatedDeliveryThread[] =L"DedicatedDeliveryThread";
  770. static const WCHAR g_wszEnableDiscreteOutput[] = L"EnableDiscreteOutput";
  771. static const WCHAR g_wszSpeakerConfig[] = L"SpeakerConfig";
  772. static const WCHAR g_wszDynamicRangeControl[] = L"DynamicRangeControl";
  773. static const WCHAR g_wszAllowInterlacedOutput[] = L"AllowInterlacedOutput";
  774. static const WCHAR g_wszVideoSampleDurations[] =L"VideoSampleDurations";
  775. static const WCHAR g_wszStreamLanguage[] =L"StreamLanguage";
  776.  
  777. ////////////////////////////////////////////////////////////////
  778. //
  779. // These are setting names for use in Get/SetInputSetting
  780. //
  781. static const WCHAR g_wszDeinterlaceMode[] =L"DeinterlaceMode";
  782. static const WCHAR g_wszInitialPatternForInverseTelecine[] =L"InitialPatternForInverseTelecine";
  783. static const WCHAR g_wszJPEGCompressionQuality[] =L"JPEGCompressionQuality";
  784. static const WCHAR g_wszWatermarkCLSID[] =L"WatermarkCLSID";
  785. static const WCHAR g_wszWatermarkConfig[] =L"WatermarkConfig";
  786. static const WCHAR g_wszInterlacedCoding[] =L"InterlacedCoding";
  787. static const WCHAR g_wszFixedFrameRate[] =L"FixedFrameRate";
  788.  
  789. ////////////////////////////////////////////////////////////////
  790. //
  791. // All known IWMPropertyVault property names
  792. //
  793. // g_wszOriginalSourceFormatTag is obsolete and has been superceded by g_wszOriginalWaveFormat
  794. static const WCHAR g_wszOriginalSourceFormatTag[] =L"_SOURCEFORMATTAG";
  795. static const WCHAR g_wszOriginalWaveFormat[] =L"_ORIGINALWAVEFORMAT";
  796. static const WCHAR g_wszEDL[] =L"_EDL";
  797. static const WCHAR g_wszComplexity[] =L"_COMPLEXITYEX";
  798. static const WCHAR g_wszDecoderComplexityRequested[] =L"_DECODERCOMPLEXITYPROFILE";
  799.  
  800. ////////////////////////////////////////////////////////////////
  801. //
  802. // All known IWMIStreamProps property names
  803. //
  804. static const WCHAR g_wszReloadIndexOnSeek[] =L"ReloadIndexOnSeek";
  805. static const WCHAR g_wszStreamNumIndexObjects[] =L"StreamNumIndexObjects";
  806. static const WCHAR g_wszFailSeekOnError[] =L"FailSeekOnError";
  807. static const WCHAR g_wszPermitSeeksBeyondEndOfStream[] =L"PermitSeeksBeyondEndOfStream";
  808. static const WCHAR g_wszUsePacketAtSeekPoint[] =L"UsePacketAtSeekPoint";
  809. static const WCHAR g_wszSourceBufferTime[] =L"SourceBufferTime";
  810. static const WCHAR g_wszSourceMaxBytesAtOnce[] =L"SourceMaxBytesAtOnce";
  811.  
  812. ////////////////////////////////////////////////////////////////
  813. //
  814. // VBR encoding settings
  815. //
  816. static const WCHAR g_wszVBREnabled[] =L"_VBRENABLED";
  817. static const WCHAR g_wszVBRQuality[] =L"_VBRQUALITY";
  818. static const WCHAR g_wszVBRBitrateMax[] =L"_RMAX";
  819. static const WCHAR g_wszVBRBufferWindowMax[] =L"_BMAX";
  820.  
  821. ////////////////////////////////////////////////////////////////
  822. //
  823. // VBR Video settings
  824. //
  825. static const WCHAR g_wszVBRPeak[] = L"VBR Peak";
  826. static const WCHAR g_wszBufferAverage[] = L"Buffer Average";
  827.  
  828. ////////////////////////////////////////////////////////////////
  829. //
  830. // Codec encoding complexity settings
  831. //
  832. // g_wszComplexity should be used to set desired encoding complexity on the
  833. // stream's IWMPropertyVault (see above for definition) 
  834. // The below settings can be queried from IWMCodecInfo3::GetCodecProp()
  835. //
  836. static const WCHAR g_wszComplexityMax[] =L"_COMPLEXITYEXMAX";
  837. static const WCHAR g_wszComplexityOffline[] =L"_COMPLEXITYEXOFFLINE";
  838. static const WCHAR g_wszComplexityLive[] =L"_COMPLEXITYEXLIVE";
  839. static const WCHAR g_wszIsVBRSupported[] =L"_ISVBRSUPPORTED";
  840. ////////////////////////////////////////////////////////////////
  841. //
  842. // Codec enumeration settings
  843. //
  844. // g_wszVBREnabled can be used as a codec enumeration setting (see above for definition)
  845. static const WCHAR g_wszNumPasses[] = L"_PASSESUSED";
  846.  
  847. ////////////////////////////////////////////////////////////////
  848. //
  849. // These are WMA Voice V9 attribute names and values
  850. //
  851. static const WCHAR g_wszMusicSpeechClassMode[] = L"MusicSpeechClassMode";
  852. static const WCHAR g_wszMusicClassMode[] = L"MusicClassMode";
  853. static const WCHAR g_wszSpeechClassMode[] = L"SpeechClassMode";
  854. static const WCHAR g_wszMixedClassMode[] = L"MixedClassMode";
  855.  
  856. ////////////////////////////////////////////////////////////////
  857. //
  858. // The WMA Voice V9 supports the following format property.
  859. //
  860. static const WCHAR g_wszSpeechCaps[] = L"SpeechFormatCap";
  861.  
  862. ////////////////////////////////////////////////////////////////
  863. //
  864. // Multi-channel WMA properties
  865. //
  866. static const WCHAR g_wszPeakValue[] = L"PeakValue";
  867. static const WCHAR g_wszAverageLevel[] = L"AverageLevel";
  868. static const WCHAR g_wszFold6To2Channels3[] = L"Fold6To2Channels3";
  869. static const WCHAR g_wszFoldToChannelsTemplate[] = L"Fold%luTo%luChannels%lu";
  870.  
  871. ////////////////////////////////////////////////////////////////
  872. //
  873. // Complexity profile description strings
  874. //
  875. static const WCHAR g_wszDeviceConformanceTemplate[] = L"DeviceConformanceTemplate";
  876.  
  877. ////////////////////////////////////////////////////////////////
  878. //
  879. // Frame interpolation on video decode
  880. //
  881. static const WCHAR g_wszEnableFrameInterpolation[] =L"EnableFrameInterpolation";
  882.  
  883. ////////////////////////////////////////////////////////////////
  884. //
  885. // Needs previous sample for Delta frame on video decode
  886. //
  887. static const WCHAR g_wszNeedsPreviousSample[] =L"NeedsPreviousSample";
  888.  
  889. ////////////////////////////////////////////////////////////////
  890. //
  891. // Flags that can be passed into the Start method of IWMReader
  892. //
  893. #define WM_START_CURRENTPOSITION     ( ( QWORD )-1 )
  894.  
  895. #define WM_BACKUP_OVERWRITE    ((DWORD) 0x00000001)
  896. #define WM_RESTORE_INDIVIDUALIZE    ((DWORD) 0x00000002)
  897. #define WAVE_FORMAT_DRM            0x0009
  898.  
  899. enum __MIDL___MIDL_itf_wmsdkidl_0000_0001
  900.     {    WEBSTREAM_SAMPLE_TYPE_FILE    = 0x1,
  901.     WEBSTREAM_SAMPLE_TYPE_RENDER    = 0x2
  902.     } ;
  903.  
  904. enum __MIDL___MIDL_itf_wmsdkidl_0000_0002
  905.     {    WM_SF_CLEANPOINT    = 0x1,
  906.     WM_SF_DISCONTINUITY    = 0x2,
  907.     WM_SF_DATALOSS    = 0x4
  908.     } ;
  909.  
  910. enum __MIDL___MIDL_itf_wmsdkidl_0000_0003
  911.     {    WM_SFEX_NOTASYNCPOINT    = 0x2,
  912.     WM_SFEX_DATALOSS    = 0x4
  913.     } ;
  914. typedef 
  915. enum WMT_STATUS
  916.     {    WMT_ERROR    = 0,
  917.     WMT_OPENED    = 1,
  918.     WMT_BUFFERING_START    = 2,
  919.     WMT_BUFFERING_STOP    = 3,
  920.     WMT_EOF    = 4,
  921.     WMT_END_OF_FILE    = 4,
  922.     WMT_END_OF_SEGMENT    = 5,
  923.     WMT_END_OF_STREAMING    = 6,
  924.     WMT_LOCATING    = 7,
  925.     WMT_CONNECTING    = 8,
  926.     WMT_NO_RIGHTS    = 9,
  927.     WMT_MISSING_CODEC    = 10,
  928.     WMT_STARTED    = 11,
  929.     WMT_STOPPED    = 12,
  930.     WMT_CLOSED    = 13,
  931.     WMT_STRIDING    = 14,
  932.     WMT_TIMER    = 15,
  933.     WMT_INDEX_PROGRESS    = 16,
  934.     WMT_SAVEAS_START    = 17,
  935.     WMT_SAVEAS_STOP    = 18,
  936.     WMT_NEW_SOURCEFLAGS    = 19,
  937.     WMT_NEW_METADATA    = 20,
  938.     WMT_BACKUPRESTORE_BEGIN    = 21,
  939.     WMT_SOURCE_SWITCH    = 22,
  940.     WMT_ACQUIRE_LICENSE    = 23,
  941.     WMT_INDIVIDUALIZE    = 24,
  942.     WMT_NEEDS_INDIVIDUALIZATION    = 25,
  943.     WMT_NO_RIGHTS_EX    = 26,
  944.     WMT_BACKUPRESTORE_END    = 27,
  945.     WMT_BACKUPRESTORE_CONNECTING    = 28,
  946.     WMT_BACKUPRESTORE_DISCONNECTING    = 29,
  947.     WMT_ERROR_WITHURL    = 30,
  948.     WMT_RESTRICTED_LICENSE    = 31,
  949.     WMT_CLIENT_CONNECT    = 32,
  950.     WMT_CLIENT_DISCONNECT    = 33,
  951.     WMT_NATIVE_OUTPUT_PROPS_CHANGED    = 34,
  952.     WMT_RECONNECT_START    = 35,
  953.     WMT_RECONNECT_END    = 36,
  954.     WMT_CLIENT_CONNECT_EX    = 37,
  955.     WMT_CLIENT_DISCONNECT_EX    = 38,
  956.     WMT_SET_FEC_SPAN    = 39,
  957.     WMT_PREROLL_READY    = 40,
  958.     WMT_PREROLL_COMPLETE    = 41,
  959.     WMT_CLIENT_PROPERTIES    = 42,
  960.     WMT_LICENSEURL_SIGNATURE_STATE    = 43
  961.     }     WMT_STATUS;
  962.  
  963. typedef 
  964. enum WMT_RIGHTS
  965.     {    WMT_RIGHT_PLAYBACK    = 0x1,
  966.     WMT_RIGHT_COPY_TO_NON_SDMI_DEVICE    = 0x2,
  967.     WMT_RIGHT_COPY_TO_CD    = 0x8,
  968.     WMT_RIGHT_COPY_TO_SDMI_DEVICE    = 0x10,
  969.     WMT_RIGHT_ONE_TIME    = 0x20,
  970.     WMT_RIGHT_SAVE_STREAM_PROTECTED    = 0x40,
  971.     WMT_RIGHT_SDMI_TRIGGER    = 0x10000,
  972.     WMT_RIGHT_SDMI_NOMORECOPIES    = 0x20000
  973.     }     WMT_RIGHTS;
  974.  
  975. typedef 
  976. enum WMT_STREAM_SELECTION
  977.     {    WMT_OFF    = 0,
  978.     WMT_CLEANPOINT_ONLY    = 1,
  979.     WMT_ON    = 2
  980.     }     WMT_STREAM_SELECTION;
  981.  
  982. typedef 
  983. enum WMT_IMAGE_TYPE
  984.     {    WMT_IT_NONE    = 0,
  985.     WMT_IT_BITMAP    = 1,
  986.     WMT_IT_JPEG    = 2,
  987.     WMT_IT_GIF    = 3
  988.     }     WMT_IMAGE_TYPE;
  989.  
  990. typedef 
  991. enum WMT_ATTR_DATATYPE
  992.     {    WMT_TYPE_DWORD    = 0,
  993.     WMT_TYPE_STRING    = 1,
  994.     WMT_TYPE_BINARY    = 2,
  995.     WMT_TYPE_BOOL    = 3,
  996.     WMT_TYPE_QWORD    = 4,
  997.     WMT_TYPE_WORD    = 5,
  998.     WMT_TYPE_GUID    = 6
  999.     }     WMT_ATTR_DATATYPE;
  1000.  
  1001. typedef 
  1002. enum WMT_ATTR_IMAGETYPE
  1003.     {    WMT_IMAGETYPE_BITMAP    = 1,
  1004.     WMT_IMAGETYPE_JPEG    = 2,
  1005.     WMT_IMAGETYPE_GIF    = 3
  1006.     }     WMT_ATTR_IMAGETYPE;
  1007.  
  1008. typedef 
  1009. enum WMT_VERSION
  1010.     {    WMT_VER_4_0    = 0x40000,
  1011.     WMT_VER_7_0    = 0x70000,
  1012.     WMT_VER_8_0    = 0x80000,
  1013.     WMT_VER_9_0    = 0x90000
  1014.     }     WMT_VERSION;
  1015.  
  1016. typedef 
  1017. enum tagWMT_STORAGE_FORMAT
  1018.     {    WMT_Storage_Format_MP3    = 0,
  1019.     WMT_Storage_Format_V1    = WMT_Storage_Format_MP3 + 1
  1020.     }     WMT_STORAGE_FORMAT;
  1021.  
  1022. typedef 
  1023. enum tagWMT_DRMLA_TRUST
  1024.     {    WMT_DRMLA_UNTRUSTED    = 0,
  1025.     WMT_DRMLA_TRUSTED    = WMT_DRMLA_UNTRUSTED + 1,
  1026.     WMT_DRMLA_TAMPERED    = WMT_DRMLA_TRUSTED + 1
  1027.     }     WMT_DRMLA_TRUST;
  1028.  
  1029. typedef 
  1030. enum tagWMT_TRANSPORT_TYPE
  1031.     {    WMT_Transport_Type_Unreliable    = 0,
  1032.     WMT_Transport_Type_Reliable    = WMT_Transport_Type_Unreliable + 1
  1033.     }     WMT_TRANSPORT_TYPE;
  1034.  
  1035. typedef 
  1036. enum WMT_NET_PROTOCOL
  1037.     {    WMT_PROTOCOL_HTTP    = 0
  1038.     }     WMT_NET_PROTOCOL;
  1039.  
  1040. typedef 
  1041. enum WMT_PLAY_MODE
  1042.     {    WMT_PLAY_MODE_AUTOSELECT    = 0,
  1043.     WMT_PLAY_MODE_LOCAL    = 1,
  1044.     WMT_PLAY_MODE_DOWNLOAD    = 2,
  1045.     WMT_PLAY_MODE_STREAMING    = 3
  1046.     }     WMT_PLAY_MODE;
  1047.  
  1048. typedef
  1049. enum WMT_PROXY_SETTINGS
  1050.     {    WMT_PROXY_SETTING_NONE    = 0,
  1051.     WMT_PROXY_SETTING_MANUAL    = 1,
  1052.     WMT_PROXY_SETTING_AUTO    = 2,
  1053.     WMT_PROXY_SETTING_BROWSER    = 3,
  1054.     WMT_PROXY_SETTING_MAX    = WMT_PROXY_SETTING_BROWSER + 1
  1055.     }     WMT_PROXY_SETTINGS;
  1056.  
  1057. typedef DWORD WMT_CODEC_INFO_TYPE;
  1058. #define    WMT_CODECINFO_AUDIO  0
  1059. #define WMT_CODECINFO_VIDEO  1
  1060. #define WMT_CODECINFO_UNKNOWN 0xffffffff
  1061.  
  1062. enum __MIDL___MIDL_itf_wmsdkidl_0000_0004
  1063.     {    WM_DM_NOTINTERLACED    = 0,
  1064.     WM_DM_DEINTERLACE_NORMAL    = 1,
  1065.     WM_DM_DEINTERLACE_HALFSIZE    = 2,
  1066.     WM_DM_DEINTERLACE_HALFSIZEDOUBLERATE    = 3,
  1067.     WM_DM_DEINTERLACE_INVERSETELECINE    = 4,
  1068.     WM_DM_DEINTERLACE_VERTICALHALFSIZEDOUBLERATE    = 5
  1069.     } ;
  1070.  
  1071. enum __MIDL___MIDL_itf_wmsdkidl_0000_0005
  1072.     {    WM_DM_IT_DISABLE_COHERENT_MODE    = 0,
  1073.     WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_TOP    = 1,
  1074.     WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP    = 2,
  1075.     WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP    = 3,
  1076.     WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP    = 4,
  1077.     WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_TOP    = 5,
  1078.     WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_BOTTOM    = 6,
  1079.     WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_BOTTOM    = 7,
  1080.     WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM    = 8,
  1081.     WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_BOTTOM    = 9,
  1082.     WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM    = 10
  1083.     } ;
  1084. typedef 
  1085. enum tagWMT_OFFSET_FORMAT
  1086.     {    WMT_OFFSET_FORMAT_100NS    = 0,
  1087.     WMT_OFFSET_FORMAT_FRAME_NUMBERS    = WMT_OFFSET_FORMAT_100NS + 1,
  1088.     WMT_OFFSET_FORMAT_PLAYLIST_OFFSET    = WMT_OFFSET_FORMAT_FRAME_NUMBERS + 1,
  1089.     WMT_OFFSET_FORMAT_TIMECODE    = WMT_OFFSET_FORMAT_PLAYLIST_OFFSET + 1
  1090.     }     WMT_OFFSET_FORMAT;
  1091.  
  1092. typedef 
  1093. enum tagWMT_INDEXER_TYPE
  1094.     {    WMT_IT_PRESENTATION_TIME    = 0,
  1095.     WMT_IT_FRAME_NUMBERS    = WMT_IT_PRESENTATION_TIME + 1,
  1096.     WMT_IT_TIMECODE    = WMT_IT_FRAME_NUMBERS + 1
  1097.     }     WMT_INDEXER_TYPE;
  1098.  
  1099. typedef 
  1100. enum tagWMT_INDEX_TYPE
  1101.     {    WMT_IT_NEAREST_DATA_UNIT    = 1,
  1102.     WMT_IT_NEAREST_OBJECT    = WMT_IT_NEAREST_DATA_UNIT + 1,
  1103.     WMT_IT_NEAREST_CLEAN_POINT    = WMT_IT_NEAREST_OBJECT + 1
  1104.     }     WMT_INDEX_TYPE;
  1105.  
  1106. typedef 
  1107. enum tagWMT_FILESINK_MODE
  1108.     {    WMT_FM_SINGLE_BUFFERS    = 0x1,
  1109.     WMT_FM_FILESINK_DATA_UNITS    = 0x2,
  1110.     WMT_FM_FILESINK_UNBUFFERED    = 0x4
  1111.     }     WMT_FILESINK_MODE;
  1112.  
  1113. typedef 
  1114. enum tagWMT_MUSICSPEECH_CLASS_MODE
  1115.     {    WMT_MS_CLASS_MUSIC    = 0,
  1116.     WMT_MS_CLASS_SPEECH    = 1,
  1117.     WMT_MS_CLASS_MIXED    = 2
  1118.     }     WMT_MUSICSPEECH_CLASS_MODE;
  1119.  
  1120. typedef 
  1121. enum tagWMT_WATERMARK_ENTRY_TYPE
  1122.     {    WMT_WMETYPE_AUDIO    = 1,
  1123.     WMT_WMETYPE_VIDEO    = 2
  1124.     }     WMT_WATERMARK_ENTRY_TYPE;
  1125.  
  1126.  
  1127. enum __MIDL___MIDL_itf_wmsdkidl_0000_0006
  1128.     {    WM_PLAYBACK_DRC_HIGH    = 0,
  1129.     WM_PLAYBACK_DRC_MEDIUM    = WM_PLAYBACK_DRC_HIGH + 1,
  1130.     WM_PLAYBACK_DRC_LOW    = WM_PLAYBACK_DRC_MEDIUM + 1
  1131.     } ;
  1132.  
  1133. enum __MIDL___MIDL_itf_wmsdkidl_0000_0007
  1134.     {    WMT_TIMECODE_FRAMERATE_30    = 0,
  1135.     WMT_TIMECODE_FRAMERATE_30DROP    = WMT_TIMECODE_FRAMERATE_30 + 1,
  1136.     WMT_TIMECODE_FRAMERATE_25    = WMT_TIMECODE_FRAMERATE_30DROP + 1,
  1137.     WMT_TIMECODE_FRAMERATE_24    = WMT_TIMECODE_FRAMERATE_25 + 1
  1138.     } ;
  1139. typedef 
  1140. enum WMT_CREDENTIAL_FLAGS
  1141.     {    WMT_CREDENTIAL_SAVE    = 0x1,
  1142.     WMT_CREDENTIAL_DONT_CACHE    = 0x2,
  1143.     WMT_CREDENTIAL_CLEAR_TEXT    = 0x4,
  1144.     WMT_CREDENTIAL_PROXY    = 0x8,
  1145.     WMT_CREDENTIAL_ENCRYPT    = 0x10
  1146.     }     WMT_CREDENTIAL_FLAGS;
  1147.  
  1148. typedef 
  1149. enum WM_AETYPE
  1150.     {    WM_AETYPE_INCLUDE    = 0x69,
  1151.     WM_AETYPE_EXCLUDE    = 0x65
  1152.     }     WM_AETYPE;
  1153.  
  1154.  
  1155. #pragma pack(push)
  1156.  
  1157. #pragma pack(2)
  1158. typedef struct _WMStreamPrioritizationRecord
  1159.     {
  1160.     WORD wStreamNumber;
  1161.     BOOL fMandatory;
  1162.     }     WM_STREAM_PRIORITY_RECORD;
  1163.  
  1164.  
  1165. #pragma pack(pop)
  1166. typedef struct _WMWriterStatistics
  1167.     {
  1168.     QWORD qwSampleCount;
  1169.     QWORD qwByteCount;
  1170.     QWORD qwDroppedSampleCount;
  1171.     QWORD qwDroppedByteCount;
  1172.     DWORD dwCurrentBitrate;
  1173.     DWORD dwAverageBitrate;
  1174.     DWORD dwExpectedBitrate;
  1175.     DWORD dwCurrentSampleRate;
  1176.     DWORD dwAverageSampleRate;
  1177.     DWORD dwExpectedSampleRate;
  1178.     }     WM_WRITER_STATISTICS;
  1179.  
  1180. typedef struct _WMWriterStatisticsEx
  1181.     {
  1182.     DWORD dwBitratePlusOverhead;
  1183.     DWORD dwCurrentSampleDropRateInQueue;
  1184.     DWORD dwCurrentSampleDropRateInCodec;
  1185.     DWORD dwCurrentSampleDropRateInMultiplexer;
  1186.     DWORD dwTotalSampleDropsInQueue;
  1187.     DWORD dwTotalSampleDropsInCodec;
  1188.     DWORD dwTotalSampleDropsInMultiplexer;
  1189.     }     WM_WRITER_STATISTICS_EX;
  1190.  
  1191. typedef struct _WMReaderStatistics
  1192.     {
  1193.     DWORD cbSize;
  1194.     DWORD dwBandwidth;
  1195.     DWORD cPacketsReceived;
  1196.     DWORD cPacketsRecovered;
  1197.     DWORD cPacketsLost;
  1198.     WORD wQuality;
  1199.     }     WM_READER_STATISTICS;
  1200.  
  1201. typedef struct _WMReaderClientInfo
  1202.     {
  1203.     DWORD cbSize;
  1204.     WCHAR *wszLang;
  1205.     WCHAR *wszBrowserUserAgent;
  1206.     WCHAR *wszBrowserWebPage;
  1207.     QWORD qwReserved;
  1208.     LPARAM *pReserved;
  1209.     WCHAR *wszHostExe;
  1210.     QWORD qwHostVersion;
  1211.     WCHAR *wszPlayerUserAgent;
  1212.     }     WM_READER_CLIENTINFO;
  1213.  
  1214. typedef struct _WMClientProperties
  1215.     {
  1216.     DWORD dwIPAddress;
  1217.     DWORD dwPort;
  1218.     }     WM_CLIENT_PROPERTIES;
  1219.  
  1220. typedef struct _WMClientPropertiesEx
  1221.     {
  1222.     DWORD cbSize;
  1223.     LPCWSTR pwszIPAddress;
  1224.     LPCWSTR pwszPort;
  1225.     LPCWSTR pwszDNSName;
  1226.     }     WM_CLIENT_PROPERTIES_EX;
  1227.  
  1228. typedef struct _WMPortNumberRange
  1229.     {
  1230.     WORD wPortBegin;
  1231.     WORD wPortEnd;
  1232.     }     WM_PORT_NUMBER_RANGE;
  1233.  
  1234. typedef struct _WMT_BUFFER_SEGMENT
  1235.     {
  1236.     INSSBuffer *pBuffer;
  1237.     DWORD cbOffset;
  1238.     DWORD cbLength;
  1239.     }     WMT_BUFFER_SEGMENT;
  1240.  
  1241. typedef struct _WMT_PAYLOAD_FRAGMENT
  1242.     {
  1243.     DWORD dwPayloadIndex;
  1244.     WMT_BUFFER_SEGMENT segmentData;
  1245.     }     WMT_PAYLOAD_FRAGMENT;
  1246.  
  1247. typedef struct _WMT_FILESINK_DATA_UNIT
  1248.     {
  1249.     WMT_BUFFER_SEGMENT packetHeaderBuffer;
  1250.     DWORD cPayloads;
  1251.     WMT_BUFFER_SEGMENT *pPayloadHeaderBuffers;
  1252.     DWORD cPayloadDataFragments;
  1253.     WMT_PAYLOAD_FRAGMENT *pPayloadDataFragments;
  1254.     }     WMT_FILESINK_DATA_UNIT;
  1255.  
  1256. typedef struct _WMT_WEBSTREAM_FORMAT
  1257.     {
  1258.     WORD cbSize;
  1259.     WORD cbSampleHeaderFixedData;
  1260.     WORD wVersion;
  1261.     WORD wReserved;
  1262.     }     WMT_WEBSTREAM_FORMAT;
  1263.  
  1264. typedef struct _WMT_WEBSTREAM_SAMPLE_HEADER
  1265.     {
  1266.     WORD cbLength;
  1267.     WORD wPart;
  1268.     WORD cTotalParts;
  1269.     WORD wSampleType;
  1270.     WCHAR wszURL[ 1 ];
  1271.     }     WMT_WEBSTREAM_SAMPLE_HEADER;
  1272.  
  1273. typedef struct _WMAddressAccessEntry
  1274.     {
  1275.     DWORD dwIPAddress;
  1276.     DWORD dwMask;
  1277.     }     WM_ADDRESS_ACCESSENTRY;
  1278.  
  1279.  
  1280. #pragma pack(push)
  1281.  
  1282. #pragma pack(1)
  1283. typedef struct _WMPicture
  1284.     {
  1285.     LPWSTR pwszMIMEType;
  1286.     BYTE bPictureType;
  1287.     LPWSTR pwszDescription;
  1288.     DWORD dwDataLen;
  1289.     BYTE *pbData;
  1290.     }     WM_PICTURE;
  1291.  
  1292. typedef struct _WMSynchronisedLyrics
  1293.     {
  1294.     BYTE bTimeStampFormat;
  1295.     BYTE bContentType;
  1296.     LPWSTR pwszContentDescriptor;
  1297.     DWORD dwLyricsLen;
  1298.     BYTE *pbLyrics;
  1299.     }     WM_SYNCHRONISED_LYRICS;
  1300.  
  1301. typedef struct _WMUserWebURL
  1302.     {
  1303.     LPWSTR pwszDescription;
  1304.     LPWSTR pwszURL;
  1305.     }     WM_USER_WEB_URL;
  1306.  
  1307. typedef struct _WMUserText
  1308.     {
  1309.     LPWSTR pwszDescription;
  1310.     LPWSTR pwszText;
  1311.     }     WM_USER_TEXT;
  1312.  
  1313. typedef struct _WMLeakyBucketPair
  1314.     {
  1315.     DWORD dwBitrate;
  1316.     DWORD msBufferWindow;
  1317.     }     WM_LEAKY_BUCKET_PAIR;
  1318.  
  1319.  
  1320. #pragma pack(pop)
  1321. typedef struct _WM_LICENSE_STATE_DATA
  1322.     {
  1323.     DWORD dwSize;
  1324.     DWORD dwNumStates;
  1325.     DRM_LICENSE_STATE_DATA stateData[ 1 ];
  1326.     }     WM_LICENSE_STATE_DATA;
  1327.  
  1328. typedef struct __WMT_WATERMARK_ENTRY
  1329.     {
  1330.     WMT_WATERMARK_ENTRY_TYPE wmetType;
  1331.     CLSID clsid;
  1332.     UINT cbDisplayName;
  1333.     LPWSTR pwszDisplayName;
  1334.     }     WMT_WATERMARK_ENTRY;
  1335.  
  1336. #define WMT_VIDEOIMAGE_SAMPLE_INPUT_FRAME      1 // sample has input frame 
  1337. #define WMT_VIDEOIMAGE_SAMPLE_OUTPUT_FRAME     2 // sample produces output frame 
  1338. #define WMT_VIDEOIMAGE_SAMPLE_USES_CURRENT_INPUT_FRAME  4 
  1339. #define WMT_VIDEOIMAGE_SAMPLE_USES_PREVIOUS_INPUT_FRAME 8 
  1340. #define WMT_VIDEOIMAGE_SAMPLE_MOTION       1 // acef used (includes resizing) 
  1341. #define WMT_VIDEOIMAGE_SAMPLE_ROTATION     2 // bd also used (not valid without acef) 
  1342. #define WMT_VIDEOIMAGE_SAMPLE_BLENDING     4 // BlendCoef1 used 
  1343. #define WMT_VIDEOIMAGE_SAMPLE_ADV_BLENDING 8 // BlendCoef2 also used (not valid without BlendCoef1) 
  1344. #define WMT_VIDEOIMAGE_INTEGER_DENOMINATOR 65536L 
  1345. #define WMT_VIDEOIMAGE_MAGIC_NUMBER 0x1d4a45f2 
  1346. typedef struct __WMT_VIDEOIMAGE_SAMPLE
  1347.     {
  1348.     DWORD dwMagic;
  1349.     ULONG cbStruct;
  1350.     DWORD dwControlFlags;
  1351.     DWORD dwInputFlagsCur;
  1352.     LONG lCurMotionXtoX;
  1353.     LONG lCurMotionYtoX;
  1354.     LONG lCurMotionXoffset;
  1355.     LONG lCurMotionXtoY;
  1356.     LONG lCurMotionYtoY;
  1357.     LONG lCurMotionYoffset;
  1358.     LONG lCurBlendCoef1;
  1359.     LONG lCurBlendCoef2;
  1360.     DWORD dwInputFlagsPrev;
  1361.     LONG lPrevMotionXtoX;
  1362.     LONG lPrevMotionYtoX;
  1363.     LONG lPrevMotionXoffset;
  1364.     LONG lPrevMotionXtoY;
  1365.     LONG lPrevMotionYtoY;
  1366.     LONG lPrevMotionYoffset;
  1367.     LONG lPrevBlendCoef1;
  1368.     LONG lPrevBlendCoef2;
  1369.     }     WMT_VIDEOIMAGE_SAMPLE;
  1370.  
  1371. typedef struct _WMMediaType
  1372.     {
  1373.     GUID majortype;
  1374.     GUID subtype;
  1375.     BOOL bFixedSizeSamples;
  1376.     BOOL bTemporalCompression;
  1377.     ULONG lSampleSize;
  1378.     GUID formattype;
  1379.     IUnknown *pUnk;
  1380.     ULONG cbFormat;
  1381.     /* [size_is] */ BYTE *pbFormat;
  1382.     }     WM_MEDIA_TYPE;
  1383.  
  1384. typedef struct tagWMVIDEOINFOHEADER
  1385. {
  1386.     //
  1387.     // The bit we really want to use.
  1388.     //
  1389.     RECT rcSource;
  1390.  
  1391.     //
  1392.     // Where the video should go.
  1393.     //
  1394.     RECT rcTarget;
  1395.  
  1396.     //
  1397.     // Approximate bit data rate.
  1398.     //
  1399.     DWORD dwBitRate;
  1400.  
  1401.     //
  1402.     // Bit error rate for this stream.
  1403.     //
  1404.     DWORD dwBitErrorRate;
  1405.  
  1406.     //
  1407.     // Average time per frame (100ns units).
  1408.     //
  1409.     LONGLONG AvgTimePerFrame;
  1410.  
  1411.     BITMAPINFOHEADER bmiHeader;
  1412. } WMVIDEOINFOHEADER;
  1413. typedef struct tagWMVIDEOINFOHEADER2
  1414. {
  1415.     //
  1416.     // The bit we really want to use.
  1417.     //
  1418.     RECT rcSource;
  1419.  
  1420.     //
  1421.     // Where the video should go.
  1422.     //
  1423.     RECT rcTarget;
  1424.  
  1425.     //
  1426.     // Approximate bit data rate.
  1427.     //
  1428.     DWORD dwBitRate;
  1429.  
  1430.     //
  1431.     // Bit error rate for this stream.
  1432.     //
  1433.     DWORD dwBitErrorRate;
  1434.  
  1435.     //
  1436.     // Average time per frame (100ns units).
  1437.     //
  1438.     LONGLONG AvgTimePerFrame;
  1439.  
  1440.     //
  1441.     // Use AMINTERLACE_* defines. Reject connection if undefined bits are not 0.
  1442.     //
  1443.     DWORD dwInterlaceFlags;
  1444.  
  1445.     //
  1446.     // use AMCOPYPROTECT_* defines. Reject connection if undefined bits are not 0.
  1447.     //
  1448.     DWORD dwCopyProtectFlags;
  1449.  
  1450.     //
  1451.     // X dimension of picture aspect ratio, e.g. 16 for 16x9 display.
  1452.     //
  1453.     DWORD dwPictAspectRatioX;
  1454.  
  1455.     //
  1456.     // Y dimension of picture aspect ratio, e.g.  9 for 16x9 display.
  1457.     //
  1458.     DWORD dwPictAspectRatioY;
  1459.  
  1460.     //
  1461.     // Must be 0; reject connection otherwise.
  1462.     //
  1463.     DWORD dwReserved1;
  1464.  
  1465.     //
  1466.     // Must be 0; reject connection otherwise.
  1467.     //
  1468.     DWORD dwReserved2;
  1469.  
  1470.     BITMAPINFOHEADER bmiHeader;
  1471. } WMVIDEOINFOHEADER2;
  1472. typedef struct tagWMMPEG2VIDEOINFO
  1473. {
  1474.     //
  1475.     // Video info header2.
  1476.     //
  1477.     WMVIDEOINFOHEADER2 hdr;
  1478.  
  1479.     //
  1480.     // Not used for DVD.
  1481.     //
  1482.     DWORD dwStartTimeCode;
  1483.  
  1484.     //
  1485.     // Is 0 for DVD (no sequence header).
  1486.     //
  1487.     DWORD cbSequenceHeader;
  1488.  
  1489.     //
  1490.     // Use enum MPEG2Profile.
  1491.     //
  1492.     DWORD dwProfile;
  1493.  
  1494.     //
  1495.     // Use enum MPEG2Level.
  1496.     //
  1497.     DWORD dwLevel;
  1498.  
  1499.     //
  1500.     // Use AMMPEG2_* defines.  Reject connection if undefined bits are not 0.
  1501.     //
  1502.     DWORD dwFlags;
  1503.  
  1504.     //
  1505.     // Sequence header.
  1506.     //
  1507.     DWORD dwSequenceHeader[1];
  1508.  
  1509. } WMMPEG2VIDEOINFO;
  1510. typedef struct tagWMSCRIPTFORMAT
  1511. {
  1512.     GUID    scriptType; 
  1513. } WMSCRIPTFORMAT;
  1514. // 00000000-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_Base 
  1515. EXTERN_GUID(WMMEDIASUBTYPE_Base, 
  1516. 0x00000000, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1517. // 73646976-0000-0010-8000-00AA00389B71  'vids' == WMMEDIATYPE_Video 
  1518. EXTERN_GUID(WMMEDIATYPE_Video, 
  1519. 0x73646976, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); 
  1520. // e436eb78-524f-11ce-9f53-0020af0ba770            MEDIASUBTYPE_RGB1 
  1521. EXTERN_GUID(WMMEDIASUBTYPE_RGB1, 
  1522. 0xe436eb78, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); 
  1523. // e436eb79-524f-11ce-9f53-0020af0ba770            MEDIASUBTYPE_RGB4 
  1524. EXTERN_GUID(WMMEDIASUBTYPE_RGB4, 
  1525. 0xe436eb79, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); 
  1526. // e436eb7a-524f-11ce-9f53-0020af0ba770            MEDIASUBTYPE_RGB8 
  1527. EXTERN_GUID(WMMEDIASUBTYPE_RGB8, 
  1528. 0xe436eb7a, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); 
  1529. // e436eb7b-524f-11ce-9f53-0020af0ba770            MEDIASUBTYPE_RGB565 
  1530. EXTERN_GUID(WMMEDIASUBTYPE_RGB565, 
  1531. 0xe436eb7b, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); 
  1532. // e436eb7c-524f-11ce-9f53-0020af0ba770            MEDIASUBTYPE_RGB555 
  1533. EXTERN_GUID(WMMEDIASUBTYPE_RGB555, 
  1534. 0xe436eb7c, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); 
  1535. // e436eb7d-524f-11ce-9f53-0020af0ba770            MEDIASUBTYPE_RGB24 
  1536. EXTERN_GUID(WMMEDIASUBTYPE_RGB24, 
  1537. 0xe436eb7d, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); 
  1538. // e436eb7e-524f-11ce-9f53-0020af0ba770            MEDIASUBTYPE_RGB32 
  1539. EXTERN_GUID(WMMEDIASUBTYPE_RGB32, 
  1540. 0xe436eb7e, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); 
  1541. // 30323449-0000-0010-8000-00AA00389B71  'YV12' ==  MEDIASUBTYPE_I420 
  1542. EXTERN_GUID(WMMEDIASUBTYPE_I420, 
  1543. 0x30323449, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); 
  1544. // 56555949-0000-0010-8000-00AA00389B71  'YV12' ==  MEDIASUBTYPE_IYUV 
  1545. EXTERN_GUID(WMMEDIASUBTYPE_IYUV, 
  1546. 0x56555949, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); 
  1547. // 31313259-0000-0010-8000-00AA00389B71  'YV12' ==  MEDIASUBTYPE_YV12 
  1548. EXTERN_GUID(WMMEDIASUBTYPE_YV12, 
  1549. 0x32315659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); 
  1550. // 32595559-0000-0010-8000-00AA00389B71  'YUY2' == MEDIASUBTYPE_YUY2 
  1551. EXTERN_GUID(WMMEDIASUBTYPE_YUY2, 
  1552. 0x32595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); 
  1553. // 59565955-0000-0010-8000-00AA00389B71  'UYVY' ==  MEDIASUBTYPE_UYVY 
  1554. EXTERN_GUID(WMMEDIASUBTYPE_UYVY, 
  1555. 0x59565955, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); 
  1556. // 55595659-0000-0010-8000-00AA00389B71  'YVYU' == MEDIASUBTYPE_YVYU 
  1557. EXTERN_GUID(WMMEDIASUBTYPE_YVYU, 
  1558. 0x55595659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); 
  1559. // 39555659-0000-0010-8000-00AA00389B71  'YVU9' == MEDIASUBTYPE_YVU9 
  1560. EXTERN_GUID(WMMEDIASUBTYPE_YVU9, 
  1561. 0x39555659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); 
  1562. // 1d4a45f2-e5f6-4b44-8388-f0ae5c0e0c37            MEDIASUBTYPE_VIDEOIMAGE 
  1563. EXTERN_GUID(WMMEDIASUBTYPE_VIDEOIMAGE,  
  1564. 0x1d4a45f2, 0xe5f6, 0x4b44, 0x83, 0x88, 0xf0, 0xae, 0x5c, 0x0e, 0x0c, 0x37); 
  1565. // 3334504D-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_MP43 
  1566. EXTERN_GUID(WMMEDIASUBTYPE_MP43, 
  1567. 0x3334504D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1568. // 5334504D-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_MP4S 
  1569. EXTERN_GUID(WMMEDIASUBTYPE_MP4S, 
  1570. 0x5334504D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1571. // 31564D57-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_WMV1 
  1572. EXTERN_GUID(WMMEDIASUBTYPE_WMV1, 
  1573. 0x31564D57, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1574. // 32564D57-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_WMV2 
  1575. EXTERN_GUID(WMMEDIASUBTYPE_WMV2, 
  1576. 0x32564D57, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1577. // 3153534D-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_MSS1 
  1578. EXTERN_GUID(WMMEDIASUBTYPE_MSS1, 
  1579. 0x3153534D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1580. // e06d8026-db46-11cf-b4d1-00805f6cbbea            WMMEDIASUBTYPE_MPEG2_VIDEO 
  1581. EXTERN_GUID(WMMEDIASUBTYPE_MPEG2_VIDEO, 
  1582. 0xe06d8026, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); 
  1583. // 73647561-0000-0010-8000-00AA00389B71  'auds' == WMMEDIATYPE_Audio 
  1584. EXTERN_GUID(WMMEDIATYPE_Audio, 
  1585. 0x73647561, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); 
  1586. // 00000001-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_PCM 
  1587. EXTERN_GUID(WMMEDIASUBTYPE_PCM, 
  1588. 0x00000001, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1589. // 00000009-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_DRM 
  1590. EXTERN_GUID(WMMEDIASUBTYPE_DRM, 
  1591. 0x00000009, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1592. // 00000162-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_WMAudioV9 
  1593. EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV9, 
  1594. 0x00000162, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1595. // 00000163-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_WMAudio_Lossless 
  1596. EXTERN_GUID(WMMEDIASUBTYPE_WMAudio_Lossless, 
  1597. 0x00000163, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1598. // 3253534D-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_MSS2 
  1599. EXTERN_GUID(WMMEDIASUBTYPE_MSS2, 
  1600. 0x3253534D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1601. // 0000000A-0000-0010-8000-00AA00389B71        WMMEDIASUBTYPE_WMSP1 
  1602. EXTERN_GUID( WMMEDIASUBTYPE_WMSP1, 
  1603. 0x0000000A,0x0000,0x0010,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71); 
  1604. // 33564D57-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_WMV3 
  1605. EXTERN_GUID(WMMEDIASUBTYPE_WMV3, 
  1606. 0x33564D57, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1607. // 33564D57-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_WMVP 
  1608. EXTERN_GUID(WMMEDIASUBTYPE_WMVP, 
  1609. 0x50564D57, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1610. // 00000161-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_WMAudioV8 
  1611. EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV8, 
  1612. 0x00000161, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1613. // 00000161-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_WMAudioV7 
  1614. EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV7, 
  1615. 0x00000161, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1616. // 00000161-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_WMAudioV2 
  1617. EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV2, 
  1618. 0x00000161, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1619. // 00000130-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_ACELPnet 
  1620. EXTERN_GUID(WMMEDIASUBTYPE_ACELPnet, 
  1621. 0x00000130, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1622. // 00000050-0000-0010-8000-00AA00389B71            WMMEDIASUBTYPE_MP3 
  1623. EXTERN_GUID(WMMEDIASUBTYPE_MP3, 
  1624. 0x00000055, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71); 
  1625. // 776257d4-c627-41cb-8f81-7ac7ff1c40cc            WMMEDIASUBTYPE_WebStream 
  1626. EXTERN_GUID(WMMEDIASUBTYPE_WebStream, 
  1627. 0x776257d4, 0xc627, 0x41cb, 0x8f, 0x81, 0x7a, 0xc7, 0xff, 0x1c, 0x40, 0xcc); 
  1628. // 73636d64-0000-0010-8000-00AA00389B71  'scmd' == WMMEDIATYPE_Script 
  1629. EXTERN_GUID(WMMEDIATYPE_Script, 
  1630. 0x73636d64, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); 
  1631. // 34A50FD8-8AA5-4386-81FE-A0EFE0488E31  'imag' == WMMEDIATYPE_Image 
  1632. EXTERN_GUID(WMMEDIATYPE_Image, 
  1633. 0x34a50fd8, 0x8aa5, 0x4386, 0x81, 0xfe, 0xa0, 0xef, 0xe0, 0x48, 0x8e, 0x31); 
  1634. // D9E47579-930E-4427-ADFC-AD80F290E470  'fxfr' == WMMEDIATYPE_FileTransfer 
  1635. EXTERN_GUID(WMMEDIATYPE_FileTransfer, 
  1636. 0xd9e47579, 0x930e, 0x4427, 0xad, 0xfc, 0xad, 0x80, 0xf2, 0x90, 0xe4, 0x70); 
  1637. // 9BBA1EA7-5AB2-4829-BA57-0940209BCF3E      'text' == WMMEDIATYPE_Text 
  1638. EXTERN_GUID(WMMEDIATYPE_Text, 
  1639. 0x9bba1ea7, 0x5ab2, 0x4829, 0xba, 0x57, 0x9, 0x40, 0x20, 0x9b, 0xcf, 0x3e); 
  1640. // 05589f80-c356-11ce-bf01-00aa0055595a        WMFORMAT_VideoInfo 
  1641. EXTERN_GUID(WMFORMAT_VideoInfo, 
  1642. 0x05589f80, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a); 
  1643. // e06d80e3-db46-11cf-b4d1-00805f6cbbea        WMFORMAT_MPEG2Video 
  1644. EXTERN_GUID(WMFORMAT_MPEG2Video, 
  1645. 0xe06d80e3, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x05f, 0x6c, 0xbb, 0xea); 
  1646. // 05589f81-c356-11ce-bf01-00aa0055595a        WMFORMAT_WaveFormatEx 
  1647. EXTERN_GUID(WMFORMAT_WaveFormatEx, 
  1648. 0x05589f81, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a); 
  1649. // 5C8510F2-DEBE-4ca7-BBA5-F07A104F8DFF        WMFORMAT_Script 
  1650. EXTERN_GUID(WMFORMAT_Script, 
  1651. 0x5c8510f2, 0xdebe, 0x4ca7, 0xbb, 0xa5, 0xf0, 0x7a, 0x10, 0x4f, 0x8d, 0xff); 
  1652. // da1e6b13-8359-4050-b398-388e965bf00c        WMFORMAT_WebStream 
  1653. EXTERN_GUID(WMFORMAT_WebStream, 
  1654. 0xda1e6b13, 0x8359, 0x4050, 0xb3, 0x98, 0x38, 0x8e, 0x96, 0x5b, 0xf0, 0x0c); 
  1655. // 82f38a70-c29f-11d1-97ad-00a0c95ea850        WMSCRIPTTYPE_TwoStrings 
  1656. EXTERN_GUID( WMSCRIPTTYPE_TwoStrings, 
  1657. 0x82f38a70,0xc29f,0x11d1,0x97,0xad,0x00,0xa0,0xc9,0x5e,0xa8,0x50); 
  1658. EXTERN_GUID( WM_SampleExtensionGUID_OutputCleanPoint, 0xf72a3c6f, 0x6eb4, 0x4ebc, 0xb1, 0x92, 0x9, 0xad, 0x97, 0x59, 0xe8, 0x28 );
  1659. EXTERN_GUID( WM_SampleExtensionGUID_Timecode, 0x399595ec, 0x8667, 0x4e2d, 0x8f, 0xdb, 0x98, 0x81, 0x4c, 0xe7, 0x6c, 0x1e);
  1660. EXTERN_GUID( WM_SampleExtensionGUID_FileName, 0xe165ec0e, 0x19ed, 0x45d7, 0xb4, 0xa7, 0x25, 0xcb, 0xd1, 0xe2, 0x8e, 0x9b);
  1661. EXTERN_GUID( WM_SampleExtensionGUID_ContentType, 0xd590dc20, 0x07bc, 0x436c, 0x9c, 0xf7, 0xf3, 0xbb, 0xfb, 0xf1, 0xa4, 0xdc );
  1662. EXTERN_GUID( WM_SampleExtensionGUID_PixelAspectRatio, 0x1b1ee554, 0xf9ea, 0x4bc8, 0x82, 0x1a, 0x37, 0x6b, 0x74, 0xe4, 0xc4, 0xb8 );
  1663. EXTERN_GUID( WM_SampleExtensionGUID_SampleDuration, 0xc6bd9450, 0x867f, 0x4907, 0x83, 0xa3, 0xc7, 0x79, 0x21, 0xb7, 0x33, 0xad );
  1664. #define WM_SampleExtension_ContentType_Size      1
  1665. #define WM_SampleExtension_PixelAspectRatio_Size 2
  1666. #define WM_SampleExtension_Timecode_Size            14
  1667. #define WM_SampleExtension_SampleDuration_Size   2
  1668. #define WM_CT_INTERLACED  128
  1669. #define WM_CT_BOTTOM_FIELD_FIRST 32
  1670. #define WM_CT_TOP_FIELD_FIRST    64
  1671.  
  1672. #pragma pack(push)
  1673.  
  1674. #pragma pack(2)
  1675. typedef struct _WMT_TIMECODE_EXTENSION_DATA
  1676.     {
  1677.     WORD wRange;
  1678.     DWORD dwTimecode;
  1679.     DWORD dwUserbits;
  1680.     DWORD dwAmFlags;
  1681.     }     WMT_TIMECODE_EXTENSION_DATA;
  1682.  
  1683.  
  1684. #pragma pack(pop)
  1685. EXTERN_GUID( IID_IWMMediaProps,         0x96406bce,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1686. EXTERN_GUID( IID_IWMVideoMediaProps,    0x96406bcf,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1687. EXTERN_GUID( IID_IWMWriter,             0x96406bd4,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1688. EXTERN_GUID( IID_IWMInputMediaProps,    0x96406bd5,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1689. EXTERN_GUID( IID_IWMReader,             0x96406bd6,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1690. EXTERN_GUID( IID_IWMSyncReader,         0x9397f121,0x7705,0x4dc9,0xb0,0x49,0x98,0xb6,0x98,0x18,0x84,0x14 );
  1691. EXTERN_GUID( IID_IWMSyncReader2,        0xfaed3d21,0x1b6b,0x4af7,0x8c,0xb6,0x3e,0x18,0x9b,0xbc,0x18,0x7b );
  1692. EXTERN_GUID( IID_IWMOutputMediaProps,   0x96406bd7,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1693. EXTERN_GUID( IID_IWMStatusCallback,     0x6d7cdc70,0x9888,0x11d3,0x8e,0xdc,0x00,0xc0,0x4f,0x61,0x09,0xcf );
  1694. EXTERN_GUID( IID_IWMReaderCallback,     0x96406bd8,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1695. EXTERN_GUID( IID_IWMCredentialCallback, 0x342e0eb7,0xe651,0x450c,0x97,0x5b,0x2a,0xce,0x2c,0x90,0xc4,0x8e );
  1696. EXTERN_GUID( IID_IWMMetadataEditor,     0x96406bd9,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1697. EXTERN_GUID( IID_IWMMetadataEditor2,    0x203cffe3,0x2e18,0x4fdf,0xb5,0x9d,0x6e,0x71,0x53,0x05,0x34,0xcf );
  1698. EXTERN_GUID( IID_IWMDRMEditor,          0xFF130EBC,0xA6C3,0x42A6,0xB4,0x01,0xC3,0x38,0x2C,0x3E,0x08,0xB3 );
  1699. EXTERN_GUID( IID_IWMHeaderInfo,         0x96406bda,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1700. EXTERN_GUID( IID_IWMHeaderInfo2,        0x15cf9781,0x454e,0x482e,0xb3,0x93,0x85,0xfa,0xe4,0x87,0xa8,0x10 );
  1701. EXTERN_GUID( IID_IWMHeaderInfo3,        0x15CC68E3,0x27CC,0x4ecd,0xB2,0x22,0x3F,0x5D,0x02,0xD8,0x0B,0xD5 );
  1702. EXTERN_GUID( IID_IWMProfileManager,     0xd16679f2,0x6ca0,0x472d,0x8d,0x31,0x2f,0x5d,0x55,0xae,0xe1,0x55 );
  1703. EXTERN_GUID( IID_IWMProfileManager2,    0x7a924e51,0x73c1,0x494d,0x80,0x19,0x23,0xd3,0x7e,0xd9,0xb8,0x9a );
  1704. EXTERN_GUID( IID_IWMProfileManagerLanguage, 0xba4dcc78,0x7ee0,0x4ab8,0xb2,0x7a,0xdb,0xce,0x8b,0xc5,0x14,0x54 );
  1705. EXTERN_GUID( IID_IWMProfile,            0x96406bdb,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1706. EXTERN_GUID( IID_IWMProfile2,           0x07e72d33,0xd94e,0x4be7,0x88,0x43,0x60,0xae,0x5f,0xf7,0xe5,0xf5 );
  1707. EXTERN_GUID( IID_IWMProfile3,           0x00ef96cc,0xa461,0x4546,0x8b,0xcd,0xc9,0xa2,0x8f,0x0e,0x06,0xf5 );
  1708. EXTERN_GUID( IID_IWMStreamConfig,       0x96406bdc,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1709. EXTERN_GUID( IID_IWMStreamConfig2,      0x7688d8cb,0xfc0d,0x43bd,0x94,0x59,0x5a,0x8d,0xec,0x20,0x0c,0xfa );
  1710. EXTERN_GUID( IID_IWMStreamConfig3,      0xcb164104,0x3aa9,0x45a7,0x9a,0xc9,0x4d,0xae,0xe1,0x31,0xd6,0xe1 );
  1711. EXTERN_GUID( IID_IWMStreamList,         0x96406bdd,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1712. EXTERN_GUID( IID_IWMMutualExclusion,    0x96406bde,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1713. EXTERN_GUID( IID_IWMMutualExclusion2,   0x302b57d,0x89d1,0x4ba2,0x85,0xc9,0x16,0x6f,0x2c,0x53,0xeb,0x91 );
  1714. EXTERN_GUID( IID_IWMBandwidthSharing,   0xad694af1,0xf8d9,0x42f8,0xbc,0x47,0x70,0x31,0x1b,0x0c,0x4f,0x9e );
  1715. EXTERN_GUID( IID_IWMStreamPrioritization, 0x8c1c6090,0xf9a8,0x4748,0x8e,0xc3,0xdd,0x11,0x08,0xba,0x1e,0x77 );
  1716. EXTERN_GUID( IID_IWMWriterAdvanced,     0x96406be3,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1717. EXTERN_GUID( IID_IWMWriterAdvanced2,    0x962dc1ec,0xc046,0x4db8,0x9c,0xc7,0x26,0xce,0xae,0x50,0x08,0x17 );
  1718. EXTERN_GUID( IID_IWMWriterAdvanced3,    0x2cd6492d,0x7c37,0x4e76,0x9d,0x3b,0x59,0x26,0x11,0x83,0xa2,0x2e );
  1719. EXTERN_GUID( IID_IWMWriterPreprocess,   0xfc54a285,0x38c4,0x45b5,0xaa,0x23,0x85,0xb9,0xf7,0xcb,0x42,0x4b );
  1720. EXTERN_GUID( IID_IWMWriterSink,         0x96406be4,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1721. EXTERN_GUID( IID_IWMWriterFileSink,     0x96406be5,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1722. EXTERN_GUID( IID_IWMWriterFileSink2,    0x14282ba7,0x4aef,0x4205,0x8c,0xe5,0xc2,0x29,0x03,0x5a,0x05,0xbc );
  1723. EXTERN_GUID( IID_IWMWriterFileSink3,    0x3fea4feb,0x2945,0x47a7,0xa1,0xdd,0xc5,0x3a,0x8f,0xc4,0xc4,0x5c );
  1724. EXTERN_GUID( IID_IWMWriterNetworkSink,  0x96406be7,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1725. EXTERN_GUID( IID_IWMClientConnections,  0x73c66010,0xa299,0x41df,0xb1,0xf0,0xcc,0xf0,0x3b,0x09,0xc1,0xc6 );
  1726. EXTERN_GUID( IID_IWMClientConnections2, 0x4091571e,0x4701,0x4593,0xbb,0x3d,0xd5,0xf5,0xf0,0xc7,0x42,0x46 ); 
  1727. EXTERN_GUID( IID_IWMReaderAdvanced,     0x96406bea,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1728. EXTERN_GUID( IID_IWMReaderAdvanced2,    0xae14a945,0xb90c,0x4d0d,0x91,0x27,0x80,0xd6,0x65,0xf7,0xd7,0x3e );
  1729. EXTERN_GUID( IID_IWMReaderAdvanced3,    0x5dc0674b,0xf04b,0x4a4e,0x9f,0x2a,0xb1,0xaf,0xde,0x2c,0x81,0x00 );
  1730. EXTERN_GUID( IID_IWMReaderAdvanced4,    0x945a76a2,0x12ae,0x4d48,0xbd,0x3c,0xcd,0x1d,0x90,0x39,0x9b,0x85 );
  1731. EXTERN_GUID( IID_IWMDRMReader,          0xd2827540,0x3ee7,0x432c,0xb1,0x4c,0xdc,0x17,0xf0,0x85,0xd3,0xb3 );
  1732. EXTERN_GUID( IID_IWMReaderCallbackAdvanced, 0x96406beb,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1733. EXTERN_GUID( IID_IWMReaderNetworkConfig,0x96406bec,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1734. EXTERN_GUID( IID_IWMReaderStreamClock,  0x96406bed,0x2b2b,0x11d3,0xb3,0x6b,0x00,0xc0,0x4f,0x61,0x08,0xff );
  1735. EXTERN_GUID( IID_IWMIndexer,            0x6d7cdc71,0x9888,0x11d3,0x8e,0xdc,0x00,0xc0,0x4f,0x61,0x09,0xcf );
  1736. EXTERN_GUID( IID_IWMIndexer2,           0xb70f1e42,0x6255,0x4df0,0xa6,0xb9,0x02,0xb2,0x12,0xd9,0xe2,0xbb );
  1737. EXTERN_GUID( IID_IWMReaderAllocatorEx,  0x9f762fa7,0xa22e,0x428d,0x93,0xc9,0xac,0x82,0xf3,0xaa,0xfe,0x5a );
  1738. EXTERN_GUID( IID_IWMReaderTypeNegotiation, 0xfdbe5592,0x81a1,0x41ea,0x93,0xbd,0x73,0x5c,0xad,0x1a,0xdc,0x5 );
  1739. EXTERN_GUID( IID_IWMLicenseBackup,      0x05E5AC9F,0x3FB6,0x4508,0xBB,0x43,0xA4,0x06,0x7B,0xA1,0xEB,0xE8);
  1740. EXTERN_GUID( IID_IWMLicenseRestore,     0xC70B6334,0xa22e,0x4efb,0xA2,0x45,0x15,0xE6,0x5A,0x00,0x4A,0x13);
  1741. EXTERN_GUID( IID_IWMBackupRestoreProps, 0x3C8E0DA6,0x996F,0x4ff3,0xA1,0xAF,0x48,0x38,0xF9,0x37,0x7e,0x2e);
  1742. EXTERN_GUID( IID_IWMPacketSize,         0xcdfb97ab,0x188f,0x40b3,0xb6,0x43,0x5b,0x79,0x03,0x97,0x5c,0x59);
  1743. EXTERN_GUID( IID_IWMPacketSize2,        0x8bfc2b9e,0xb646,0x4233,0xa8,0x77,0x1c,0x6a,0x7,0x96,0x69,0xdc);
  1744. EXTERN_GUID( IID_IWMRegisterCallback,   0xcf4b1f99,0x4de2,0x4e49,0xa3,0x63,0x25,0x27,0x40,0xd9,0x9b,0xc1);
  1745. EXTERN_GUID( IID_IWMWriterPostView,     0x81e20ce4,0x75ef,0x491a,0x80,0x04,0xfc,0x53,0xc4,0x5b,0xdc,0x3e);
  1746. EXTERN_GUID( IID_IWMWriterPostViewCallback, 0xd9d6549d,0xa193,0x4f24,0xb3,0x08,0x03,0x12,0x3d,0x9b,0x7f,0x8d);
  1747. EXTERN_GUID( IID_IWMCodecInfo,          0xa970f41e,0x34de,0x4a98,0xb3,0xba,0xe4,0xb3,0xca,0x75,0x28,0xf0);
  1748. EXTERN_GUID( IID_IWMCodecInfo2,         0xaa65e273,0xb686,0x4056,0x91,0xec,0xdd,0x76,0x8d,0x4d,0xf7,0x10);
  1749. EXTERN_GUID( IID_IWMCodecInfo3,         0x7e51f487,0x4d93,0x4f98,0x8a,0xb4,0x27,0xd0,0x56,0x5a,0xdc,0x51);
  1750. EXTERN_GUID( IID_IWMPropertyVault,      0x72995A79,0x5090,0x42a4,0x9C,0x8C,0xD9,0xD0,0xB6,0xD3,0x4B,0xE5 );
  1751. EXTERN_GUID( IID_IWMIStreamProps,       0x6816dad3,0x2b4b,0x4c8e,0x81,0x49,0x87,0x4c,0x34,0x83,0xa7,0x53 );
  1752. EXTERN_GUID( IID_IWMLanguageList,       0xdf683f00,0x2d49,0x4d8e,0x92,0xb7,0xfb,0x19,0xf6,0xa0,0xdc,0x57 );
  1753. EXTERN_GUID( IID_IWMDRMWriter,           0xd6ea5dd0,0x12a0,0x43f4,0x90,0xab,0xa3,0xfd,0x45,0x1e,0x6a,0x07 );
  1754. EXTERN_GUID( IID_IWMWriterPushSink,      0xdc10e6a5,0x072c,0x467d,0xbf,0x57,0x63,0x30,0xa9,0xdd,0xe1,0x2a );
  1755. EXTERN_GUID( IID_IWMReaderNetworkConfig2,0xd979a853,0x042b,0x4050,0x83,0x87,0xc9,0x39,0xdb,0x22,0x01,0x3f );
  1756. EXTERN_GUID( IID_IWMWatermarkInfo,       0x6f497062,0xf2e2,0x4624,0x8e,0xa7,0x9d,0xd4,0x0d,0x81,0xfc,0x8d );
  1757. EXTERN_GUID( IID_IWMReaderAccelerator,   0xbddc4d08,0x944d,0x4d52,0xa6,0x12,0x46,0xc3,0xfd,0xa0,0x7d,0xd4 );
  1758. EXTERN_GUID( IID_IWMReaderTimecode,        0xf369e2f0,0xe081,0x4fe6,0x84,0x50,0xb8,0x10,0xb2,0xf4,0x10,0xd1 );
  1759. EXTERN_GUID( IID_IWMImageInfo,            0x9f0aa3b6,0x7267,0x4d89,0x88,0xf2,0xba,0x91,0x5a,0xa5,0xc4,0xc6);
  1760. EXTERN_GUID( IID_IWMAddressAccess,        0xBB3C6389,0x1633,0x4e92,0xAF,0x14,0x9F,0x31,0x73,0xBA,0x39,0xD0 );
  1761. EXTERN_GUID( IID_IWMAddressAccess2,       0x65a83fc2,0x3e98,0x4d4d,0x81,0xb5,0x2a,0x74,0x28,0x86,0xb3,0x3d );
  1762. EXTERN_GUID( CLSID_WMMUTEX_Language, 0xD6E22A00,0x35DA,0x11D1,0x90,0x34,0x00,0xA0,0xC9,0x03,0x49,0xBE );
  1763. EXTERN_GUID( CLSID_WMMUTEX_Bitrate, 0xD6E22A01,0x35DA,0x11D1,0x90,0x34,0x00,0xA0,0xC9,0x03,0x49,0xBE );
  1764. EXTERN_GUID( CLSID_WMMUTEX_Presentation, 0xD6E22A02,0x35DA,0x11D1,0x90,0x34,0x00,0xA0,0xC9,0x03,0x49,0xBE );
  1765. EXTERN_GUID( CLSID_WMMUTEX_Unknown, 0xD6E22A03,0x35DA,0x11D1,0x90,0x34,0x00,0xA0,0xC9,0x03,0x49,0xBE );
  1766. EXTERN_GUID( CLSID_WMBandwidthSharing_Exclusive, 0xaf6060aa,0x5197,0x11d2,0xb6,0xaf,0x00,0xc0,0x4f,0xd9,0x08,0xe9 );
  1767. EXTERN_GUID( CLSID_WMBandwidthSharing_Partial, 0xaf6060ab,0x5197,0x11d2,0xb6,0xaf,0x00,0xc0,0x4f,0xd9,0x08,0xe9 );
  1768. // {B42CDE2B-6178-4a2c-A375-89DD3FD7F497}
  1769. EXTERN_GUID( WMT_DMOCATEGORY_AUDIO_WATERMARK, 0x65221c5a, 0xfa75, 0x4b39, 0xb5, 0x0c, 0x06, 0xc3, 0x36, 0xb6, 0xa3, 0xef );
  1770. // {E77797C6-18AF-4458-BBDD-492D3F78FC8F}
  1771. EXTERN_GUID( WMT_DMOCATEGORY_VIDEO_WATERMARK, 0x187cc922, 0x8efc, 0x4404, 0x9d, 0xaf, 0x63, 0xf4, 0x83, 0x0d, 0xf1, 0xbc );
  1772. #define WM_MAX_VIDEO_STREAMS            0x3f
  1773. #define WM_MAX_STREAMS                  0x3f
  1774. HRESULT STDMETHODCALLTYPE WMIsContentProtected( const WCHAR *pwszFileName, BOOL *pfIsProtected );
  1775. HRESULT STDMETHODCALLTYPE WMCreateCertificate( IUnknown** pUnkCert );
  1776. HRESULT STDMETHODCALLTYPE WMCreateWriter( IUnknown* pUnkCert, IWMWriter **ppWriter );
  1777. HRESULT STDMETHODCALLTYPE WMCreateReader( IUnknown* pUnkCert, DWORD dwRights, IWMReader **ppReader );
  1778. HRESULT STDMETHODCALLTYPE WMCreateSyncReader( IUnknown* pUnkCert, DWORD dwRights, IWMSyncReader **ppSyncReader );
  1779. HRESULT STDMETHODCALLTYPE WMCreateEditor( IWMMetadataEditor **ppEditor );
  1780. HRESULT STDMETHODCALLTYPE WMCreateIndexer( IWMIndexer **ppIndexer );
  1781. HRESULT STDMETHODCALLTYPE WMCreateBackupRestorer( IUnknown *pCallback, IWMLicenseBackup **ppBackup );
  1782. HRESULT STDMETHODCALLTYPE WMCreateProfileManager( IWMProfileManager **ppProfileManager );
  1783. HRESULT STDMETHODCALLTYPE WMCreateWriterFileSink( IWMWriterFileSink **ppSink );
  1784. HRESULT STDMETHODCALLTYPE WMCreateWriterNetworkSink( IWMWriterNetworkSink **ppSink );
  1785. HRESULT STDMETHODCALLTYPE WMCreateWriterPushSink( IWMWriterPushSink **ppSink );
  1786.  
  1787.  
  1788. extern RPC_IF_HANDLE __MIDL_itf_wmsdkidl_0000_v0_0_c_ifspec;
  1789. extern RPC_IF_HANDLE __MIDL_itf_wmsdkidl_0000_v0_0_s_ifspec;
  1790.  
  1791. #ifndef __IWMMediaProps_INTERFACE_DEFINED__
  1792. #define __IWMMediaProps_INTERFACE_DEFINED__
  1793.  
  1794. /* interface IWMMediaProps */
  1795. /* [local][unique][helpstring][uuid][object] */ 
  1796.  
  1797.  
  1798. EXTERN_C const IID IID_IWMMediaProps;
  1799.  
  1800. #if defined(__cplusplus) && !defined(CINTERFACE)
  1801.     
  1802.     MIDL_INTERFACE("96406BCE-2B2B-11d3-B36B-00C04F6108FF")
  1803.     IWMMediaProps : public IUnknown
  1804.     {
  1805.     public:
  1806.         virtual HRESULT STDMETHODCALLTYPE GetType( 
  1807.             /* [out] */ GUID *pguidType) = 0;
  1808.         
  1809.         virtual HRESULT STDMETHODCALLTYPE GetMediaType( 
  1810.             /* [out] */ WM_MEDIA_TYPE *pType,
  1811.             /* [out][in] */ DWORD *pcbType) = 0;
  1812.         
  1813.         virtual HRESULT STDMETHODCALLTYPE SetMediaType( 
  1814.             /* [in] */ WM_MEDIA_TYPE *pType) = 0;
  1815.         
  1816.     };
  1817.     
  1818. #else     /* C style interface */
  1819.  
  1820.     typedef struct IWMMediaPropsVtbl
  1821.     {
  1822.         BEGIN_INTERFACE
  1823.         
  1824.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1825.             IWMMediaProps * This,
  1826.             /* [in] */ REFIID riid,
  1827.             /* [iid_is][out] */ void **ppvObject);
  1828.         
  1829.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1830.             IWMMediaProps * This);
  1831.         
  1832.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1833.             IWMMediaProps * This);
  1834.         
  1835.         HRESULT ( STDMETHODCALLTYPE *GetType )( 
  1836.             IWMMediaProps * This,
  1837.             /* [out] */ GUID *pguidType);
  1838.         
  1839.         HRESULT ( STDMETHODCALLTYPE *GetMediaType )( 
  1840.             IWMMediaProps * This,
  1841.             /* [out] */ WM_MEDIA_TYPE *pType,
  1842.             /* [out][in] */ DWORD *pcbType);
  1843.         
  1844.         HRESULT ( STDMETHODCALLTYPE *SetMediaType )( 
  1845.             IWMMediaProps * This,
  1846.             /* [in] */ WM_MEDIA_TYPE *pType);
  1847.         
  1848.         END_INTERFACE
  1849.     } IWMMediaPropsVtbl;
  1850.  
  1851.     interface IWMMediaProps
  1852.     {
  1853.         CONST_VTBL struct IWMMediaPropsVtbl *lpVtbl;
  1854.     };
  1855.  
  1856.     
  1857.  
  1858. #ifdef COBJMACROS
  1859.  
  1860.  
  1861. #define IWMMediaProps_QueryInterface(This,riid,ppvObject)    \
  1862.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1863.  
  1864. #define IWMMediaProps_AddRef(This)    \
  1865.     (This)->lpVtbl -> AddRef(This)
  1866.  
  1867. #define IWMMediaProps_Release(This)    \
  1868.     (This)->lpVtbl -> Release(This)
  1869.  
  1870.  
  1871. #define IWMMediaProps_GetType(This,pguidType)    \
  1872.     (This)->lpVtbl -> GetType(This,pguidType)
  1873.  
  1874. #define IWMMediaProps_GetMediaType(This,pType,pcbType)    \
  1875.     (This)->lpVtbl -> GetMediaType(This,pType,pcbType)
  1876.  
  1877. #define IWMMediaProps_SetMediaType(This,pType)    \
  1878.     (This)->lpVtbl -> SetMediaType(This,pType)
  1879.  
  1880. #endif /* COBJMACROS */
  1881.  
  1882.  
  1883. #endif     /* C style interface */
  1884.  
  1885.  
  1886.  
  1887. HRESULT STDMETHODCALLTYPE IWMMediaProps_GetType_Proxy( 
  1888.     IWMMediaProps * This,
  1889.     /* [out] */ GUID *pguidType);
  1890.  
  1891.  
  1892. void __RPC_STUB IWMMediaProps_GetType_Stub(
  1893.     IRpcStubBuffer *This,
  1894.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1895.     PRPC_MESSAGE _pRpcMessage,
  1896.     DWORD *_pdwStubPhase);
  1897.  
  1898.  
  1899. HRESULT STDMETHODCALLTYPE IWMMediaProps_GetMediaType_Proxy( 
  1900.     IWMMediaProps * This,
  1901.     /* [out] */ WM_MEDIA_TYPE *pType,
  1902.     /* [out][in] */ DWORD *pcbType);
  1903.  
  1904.  
  1905. void __RPC_STUB IWMMediaProps_GetMediaType_Stub(
  1906.     IRpcStubBuffer *This,
  1907.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1908.     PRPC_MESSAGE _pRpcMessage,
  1909.     DWORD *_pdwStubPhase);
  1910.  
  1911.  
  1912. HRESULT STDMETHODCALLTYPE IWMMediaProps_SetMediaType_Proxy( 
  1913.     IWMMediaProps * This,
  1914.     /* [in] */ WM_MEDIA_TYPE *pType);
  1915.  
  1916.  
  1917. void __RPC_STUB IWMMediaProps_SetMediaType_Stub(
  1918.     IRpcStubBuffer *This,
  1919.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1920.     PRPC_MESSAGE _pRpcMessage,
  1921.     DWORD *_pdwStubPhase);
  1922.  
  1923.  
  1924.  
  1925. #endif     /* __IWMMediaProps_INTERFACE_DEFINED__ */
  1926.  
  1927.  
  1928. #ifndef __IWMVideoMediaProps_INTERFACE_DEFINED__
  1929. #define __IWMVideoMediaProps_INTERFACE_DEFINED__
  1930.  
  1931. /* interface IWMVideoMediaProps */
  1932. /* [local][unique][helpstring][uuid][object] */ 
  1933.  
  1934.  
  1935. EXTERN_C const IID IID_IWMVideoMediaProps;
  1936.  
  1937. #if defined(__cplusplus) && !defined(CINTERFACE)
  1938.     
  1939.     MIDL_INTERFACE("96406BCF-2B2B-11d3-B36B-00C04F6108FF")
  1940.     IWMVideoMediaProps : public IWMMediaProps
  1941.     {
  1942.     public:
  1943.         virtual HRESULT STDMETHODCALLTYPE GetMaxKeyFrameSpacing( 
  1944.             /* [out] */ LONGLONG *pllTime) = 0;
  1945.         
  1946.         virtual HRESULT STDMETHODCALLTYPE SetMaxKeyFrameSpacing( 
  1947.             /* [in] */ LONGLONG llTime) = 0;
  1948.         
  1949.         virtual HRESULT STDMETHODCALLTYPE GetQuality( 
  1950.             /* [out] */ DWORD *pdwQuality) = 0;
  1951.         
  1952.         virtual HRESULT STDMETHODCALLTYPE SetQuality( 
  1953.             /* [in] */ DWORD dwQuality) = 0;
  1954.         
  1955.     };
  1956.     
  1957. #else     /* C style interface */
  1958.  
  1959.     typedef struct IWMVideoMediaPropsVtbl
  1960.     {
  1961.         BEGIN_INTERFACE
  1962.         
  1963.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1964.             IWMVideoMediaProps * This,
  1965.             /* [in] */ REFIID riid,
  1966.             /* [iid_is][out] */ void **ppvObject);
  1967.         
  1968.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1969.             IWMVideoMediaProps * This);
  1970.         
  1971.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1972.             IWMVideoMediaProps * This);
  1973.         
  1974.         HRESULT ( STDMETHODCALLTYPE *GetType )( 
  1975.             IWMVideoMediaProps * This,
  1976.             /* [out] */ GUID *pguidType);
  1977.         
  1978.         HRESULT ( STDMETHODCALLTYPE *GetMediaType )( 
  1979.             IWMVideoMediaProps * This,
  1980.             /* [out] */ WM_MEDIA_TYPE *pType,
  1981.             /* [out][in] */ DWORD *pcbType);
  1982.         
  1983.         HRESULT ( STDMETHODCALLTYPE *SetMediaType )( 
  1984.             IWMVideoMediaProps * This,
  1985.             /* [in] */ WM_MEDIA_TYPE *pType);
  1986.         
  1987.         HRESULT ( STDMETHODCALLTYPE *GetMaxKeyFrameSpacing )( 
  1988.             IWMVideoMediaProps * This,
  1989.             /* [out] */ LONGLONG *pllTime);
  1990.         
  1991.         HRESULT ( STDMETHODCALLTYPE *SetMaxKeyFrameSpacing )( 
  1992.             IWMVideoMediaProps * This,
  1993.             /* [in] */ LONGLONG llTime);
  1994.         
  1995.         HRESULT ( STDMETHODCALLTYPE *GetQuality )( 
  1996.             IWMVideoMediaProps * This,
  1997.             /* [out] */ DWORD *pdwQuality);
  1998.         
  1999.         HRESULT ( STDMETHODCALLTYPE *SetQuality )( 
  2000.             IWMVideoMediaProps * This,
  2001.             /* [in] */ DWORD dwQuality);
  2002.         
  2003.         END_INTERFACE
  2004.     } IWMVideoMediaPropsVtbl;
  2005.  
  2006.     interface IWMVideoMediaProps
  2007.     {
  2008.         CONST_VTBL struct IWMVideoMediaPropsVtbl *lpVtbl;
  2009.     };
  2010.  
  2011.     
  2012.  
  2013. #ifdef COBJMACROS
  2014.  
  2015.  
  2016. #define IWMVideoMediaProps_QueryInterface(This,riid,ppvObject)    \
  2017.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2018.  
  2019. #define IWMVideoMediaProps_AddRef(This)    \
  2020.     (This)->lpVtbl -> AddRef(This)
  2021.  
  2022. #define IWMVideoMediaProps_Release(This)    \
  2023.     (This)->lpVtbl -> Release(This)
  2024.  
  2025.  
  2026. #define IWMVideoMediaProps_GetType(This,pguidType)    \
  2027.     (This)->lpVtbl -> GetType(This,pguidType)
  2028.  
  2029. #define IWMVideoMediaProps_GetMediaType(This,pType,pcbType)    \
  2030.     (This)->lpVtbl -> GetMediaType(This,pType,pcbType)
  2031.  
  2032. #define IWMVideoMediaProps_SetMediaType(This,pType)    \
  2033.     (This)->lpVtbl -> SetMediaType(This,pType)
  2034.  
  2035.  
  2036. #define IWMVideoMediaProps_GetMaxKeyFrameSpacing(This,pllTime)    \
  2037.     (This)->lpVtbl -> GetMaxKeyFrameSpacing(This,pllTime)
  2038.  
  2039. #define IWMVideoMediaProps_SetMaxKeyFrameSpacing(This,llTime)    \
  2040.     (This)->lpVtbl -> SetMaxKeyFrameSpacing(This,llTime)
  2041.  
  2042. #define IWMVideoMediaProps_GetQuality(This,pdwQuality)    \
  2043.     (This)->lpVtbl -> GetQuality(This,pdwQuality)
  2044.  
  2045. #define IWMVideoMediaProps_SetQuality(This,dwQuality)    \
  2046.     (This)->lpVtbl -> SetQuality(This,dwQuality)
  2047.  
  2048. #endif /* COBJMACROS */
  2049.  
  2050.  
  2051. #endif     /* C style interface */
  2052.  
  2053.  
  2054.  
  2055. HRESULT STDMETHODCALLTYPE IWMVideoMediaProps_GetMaxKeyFrameSpacing_Proxy( 
  2056.     IWMVideoMediaProps * This,
  2057.     /* [out] */ LONGLONG *pllTime);
  2058.  
  2059.  
  2060. void __RPC_STUB IWMVideoMediaProps_GetMaxKeyFrameSpacing_Stub(
  2061.     IRpcStubBuffer *This,
  2062.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2063.     PRPC_MESSAGE _pRpcMessage,
  2064.     DWORD *_pdwStubPhase);
  2065.  
  2066.  
  2067. HRESULT STDMETHODCALLTYPE IWMVideoMediaProps_SetMaxKeyFrameSpacing_Proxy( 
  2068.     IWMVideoMediaProps * This,
  2069.     /* [in] */ LONGLONG llTime);
  2070.  
  2071.  
  2072. void __RPC_STUB IWMVideoMediaProps_SetMaxKeyFrameSpacing_Stub(
  2073.     IRpcStubBuffer *This,
  2074.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2075.     PRPC_MESSAGE _pRpcMessage,
  2076.     DWORD *_pdwStubPhase);
  2077.  
  2078.  
  2079. HRESULT STDMETHODCALLTYPE IWMVideoMediaProps_GetQuality_Proxy( 
  2080.     IWMVideoMediaProps * This,
  2081.     /* [out] */ DWORD *pdwQuality);
  2082.  
  2083.  
  2084. void __RPC_STUB IWMVideoMediaProps_GetQuality_Stub(
  2085.     IRpcStubBuffer *This,
  2086.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2087.     PRPC_MESSAGE _pRpcMessage,
  2088.     DWORD *_pdwStubPhase);
  2089.  
  2090.  
  2091. HRESULT STDMETHODCALLTYPE IWMVideoMediaProps_SetQuality_Proxy( 
  2092.     IWMVideoMediaProps * This,
  2093.     /* [in] */ DWORD dwQuality);
  2094.  
  2095.  
  2096. void __RPC_STUB IWMVideoMediaProps_SetQuality_Stub(
  2097.     IRpcStubBuffer *This,
  2098.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2099.     PRPC_MESSAGE _pRpcMessage,
  2100.     DWORD *_pdwStubPhase);
  2101.  
  2102.  
  2103.  
  2104. #endif     /* __IWMVideoMediaProps_INTERFACE_DEFINED__ */
  2105.  
  2106.  
  2107. #ifndef __IWMWriter_INTERFACE_DEFINED__
  2108. #define __IWMWriter_INTERFACE_DEFINED__
  2109.  
  2110. /* interface IWMWriter */
  2111. /* [local][unique][helpstring][uuid][object] */ 
  2112.  
  2113.  
  2114. EXTERN_C const IID IID_IWMWriter;
  2115.  
  2116. #if defined(__cplusplus) && !defined(CINTERFACE)
  2117.     
  2118.     MIDL_INTERFACE("96406BD4-2B2B-11d3-B36B-00C04F6108FF")
  2119.     IWMWriter : public IUnknown
  2120.     {
  2121.     public:
  2122.         virtual HRESULT STDMETHODCALLTYPE SetProfileByID( 
  2123.             /* [in] */ REFGUID guidProfile) = 0;
  2124.         
  2125.         virtual HRESULT STDMETHODCALLTYPE SetProfile( 
  2126.             /* [in] */ IWMProfile *pProfile) = 0;
  2127.         
  2128.         virtual HRESULT STDMETHODCALLTYPE SetOutputFilename( 
  2129.             /* [in] */ const WCHAR *pwszFilename) = 0;
  2130.         
  2131.         virtual HRESULT STDMETHODCALLTYPE GetInputCount( 
  2132.             /* [out] */ DWORD *pcInputs) = 0;
  2133.         
  2134.         virtual HRESULT STDMETHODCALLTYPE GetInputProps( 
  2135.             /* [in] */ DWORD dwInputNum,
  2136.             /* [out] */ IWMInputMediaProps **ppInput) = 0;
  2137.         
  2138.         virtual HRESULT STDMETHODCALLTYPE SetInputProps( 
  2139.             /* [in] */ DWORD dwInputNum,
  2140.             /* [in] */ IWMInputMediaProps *pInput) = 0;
  2141.         
  2142.         virtual HRESULT STDMETHODCALLTYPE GetInputFormatCount( 
  2143.             /* [in] */ DWORD dwInputNumber,
  2144.             /* [out] */ DWORD *pcFormats) = 0;
  2145.         
  2146.         virtual HRESULT STDMETHODCALLTYPE GetInputFormat( 
  2147.             /* [in] */ DWORD dwInputNumber,
  2148.             /* [in] */ DWORD dwFormatNumber,
  2149.             /* [out] */ IWMInputMediaProps **pProps) = 0;
  2150.         
  2151.         virtual HRESULT STDMETHODCALLTYPE BeginWriting( void) = 0;
  2152.         
  2153.         virtual HRESULT STDMETHODCALLTYPE EndWriting( void) = 0;
  2154.         
  2155.         virtual HRESULT STDMETHODCALLTYPE AllocateSample( 
  2156.             /* [in] */ DWORD dwSampleSize,
  2157.             /* [out] */ INSSBuffer **ppSample) = 0;
  2158.         
  2159.         virtual HRESULT STDMETHODCALLTYPE WriteSample( 
  2160.             /* [in] */ DWORD dwInputNum,
  2161.             /* [in] */ QWORD cnsSampleTime,
  2162.             /* [in] */ DWORD dwFlags,
  2163.             /* [in] */ INSSBuffer *pSample) = 0;
  2164.         
  2165.         virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0;
  2166.         
  2167.     };
  2168.     
  2169. #else     /* C style interface */
  2170.  
  2171.     typedef struct IWMWriterVtbl
  2172.     {
  2173.         BEGIN_INTERFACE
  2174.         
  2175.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2176.             IWMWriter * This,
  2177.             /* [in] */ REFIID riid,
  2178.             /* [iid_is][out] */ void **ppvObject);
  2179.         
  2180.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2181.             IWMWriter * This);
  2182.         
  2183.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2184.             IWMWriter * This);
  2185.         
  2186.         HRESULT ( STDMETHODCALLTYPE *SetProfileByID )( 
  2187.             IWMWriter * This,
  2188.             /* [in] */ REFGUID guidProfile);
  2189.         
  2190.         HRESULT ( STDMETHODCALLTYPE *SetProfile )( 
  2191.             IWMWriter * This,
  2192.             /* [in] */ IWMProfile *pProfile);
  2193.         
  2194.         HRESULT ( STDMETHODCALLTYPE *SetOutputFilename )( 
  2195.             IWMWriter * This,
  2196.             /* [in] */ const WCHAR *pwszFilename);
  2197.         
  2198.         HRESULT ( STDMETHODCALLTYPE *GetInputCount )( 
  2199.             IWMWriter * This,
  2200.             /* [out] */ DWORD *pcInputs);
  2201.         
  2202.         HRESULT ( STDMETHODCALLTYPE *GetInputProps )( 
  2203.             IWMWriter * This,
  2204.             /* [in] */ DWORD dwInputNum,
  2205.             /* [out] */ IWMInputMediaProps **ppInput);
  2206.         
  2207.         HRESULT ( STDMETHODCALLTYPE *SetInputProps )( 
  2208.             IWMWriter * This,
  2209.             /* [in] */ DWORD dwInputNum,
  2210.             /* [in] */ IWMInputMediaProps *pInput);
  2211.         
  2212.         HRESULT ( STDMETHODCALLTYPE *GetInputFormatCount )( 
  2213.             IWMWriter * This,
  2214.             /* [in] */ DWORD dwInputNumber,
  2215.             /* [out] */ DWORD *pcFormats);
  2216.         
  2217.         HRESULT ( STDMETHODCALLTYPE *GetInputFormat )( 
  2218.             IWMWriter * This,
  2219.             /* [in] */ DWORD dwInputNumber,
  2220.             /* [in] */ DWORD dwFormatNumber,
  2221.             /* [out] */ IWMInputMediaProps **pProps);
  2222.         
  2223.         HRESULT ( STDMETHODCALLTYPE *BeginWriting )( 
  2224.             IWMWriter * This);
  2225.         
  2226.         HRESULT ( STDMETHODCALLTYPE *EndWriting )( 
  2227.             IWMWriter * This);
  2228.         
  2229.         HRESULT ( STDMETHODCALLTYPE *AllocateSample )( 
  2230.             IWMWriter * This,
  2231.             /* [in] */ DWORD dwSampleSize,
  2232.             /* [out] */ INSSBuffer **ppSample);
  2233.         
  2234.         HRESULT ( STDMETHODCALLTYPE *WriteSample )( 
  2235.             IWMWriter * This,
  2236.             /* [in] */ DWORD dwInputNum,
  2237.             /* [in] */ QWORD cnsSampleTime,
  2238.             /* [in] */ DWORD dwFlags,
  2239.             /* [in] */ INSSBuffer *pSample);
  2240.         
  2241.         HRESULT ( STDMETHODCALLTYPE *Flush )( 
  2242.             IWMWriter * This);
  2243.         
  2244.         END_INTERFACE
  2245.     } IWMWriterVtbl;
  2246.  
  2247.     interface IWMWriter
  2248.     {
  2249.         CONST_VTBL struct IWMWriterVtbl *lpVtbl;
  2250.     };
  2251.  
  2252.     
  2253.  
  2254. #ifdef COBJMACROS
  2255.  
  2256.  
  2257. #define IWMWriter_QueryInterface(This,riid,ppvObject)    \
  2258.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2259.  
  2260. #define IWMWriter_AddRef(This)    \
  2261.     (This)->lpVtbl -> AddRef(This)
  2262.  
  2263. #define IWMWriter_Release(This)    \
  2264.     (This)->lpVtbl -> Release(This)
  2265.  
  2266.  
  2267. #define IWMWriter_SetProfileByID(This,guidProfile)    \
  2268.     (This)->lpVtbl -> SetProfileByID(This,guidProfile)
  2269.  
  2270. #define IWMWriter_SetProfile(This,pProfile)    \
  2271.     (This)->lpVtbl -> SetProfile(This,pProfile)
  2272.  
  2273. #define IWMWriter_SetOutputFilename(This,pwszFilename)    \
  2274.     (This)->lpVtbl -> SetOutputFilename(This,pwszFilename)
  2275.  
  2276. #define IWMWriter_GetInputCount(This,pcInputs)    \
  2277.     (This)->lpVtbl -> GetInputCount(This,pcInputs)
  2278.  
  2279. #define IWMWriter_GetInputProps(This,dwInputNum,ppInput)    \
  2280.     (This)->lpVtbl -> GetInputProps(This,dwInputNum,ppInput)
  2281.  
  2282. #define IWMWriter_SetInputProps(This,dwInputNum,pInput)    \
  2283.     (This)->lpVtbl -> SetInputProps(This,dwInputNum,pInput)
  2284.  
  2285. #define IWMWriter_GetInputFormatCount(This,dwInputNumber,pcFormats)    \
  2286.     (This)->lpVtbl -> GetInputFormatCount(This,dwInputNumber,pcFormats)
  2287.  
  2288. #define IWMWriter_GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps)    \
  2289.     (This)->lpVtbl -> GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps)
  2290.  
  2291. #define IWMWriter_BeginWriting(This)    \
  2292.     (This)->lpVtbl -> BeginWriting(This)
  2293.  
  2294. #define IWMWriter_EndWriting(This)    \
  2295.     (This)->lpVtbl -> EndWriting(This)
  2296.  
  2297. #define IWMWriter_AllocateSample(This,dwSampleSize,ppSample)    \
  2298.     (This)->lpVtbl -> AllocateSample(This,dwSampleSize,ppSample)
  2299.  
  2300. #define IWMWriter_WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample)    \
  2301.     (This)->lpVtbl -> WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample)
  2302.  
  2303. #define IWMWriter_Flush(This)    \
  2304.     (This)->lpVtbl -> Flush(This)
  2305.  
  2306. #endif /* COBJMACROS */
  2307.  
  2308.  
  2309. #endif     /* C style interface */
  2310.  
  2311.  
  2312.  
  2313. HRESULT STDMETHODCALLTYPE IWMWriter_SetProfileByID_Proxy( 
  2314.     IWMWriter * This,
  2315.     /* [in] */ REFGUID guidProfile);
  2316.  
  2317.  
  2318. void __RPC_STUB IWMWriter_SetProfileByID_Stub(
  2319.     IRpcStubBuffer *This,
  2320.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2321.     PRPC_MESSAGE _pRpcMessage,
  2322.     DWORD *_pdwStubPhase);
  2323.  
  2324.  
  2325. HRESULT STDMETHODCALLTYPE IWMWriter_SetProfile_Proxy( 
  2326.     IWMWriter * This,
  2327.     /* [in] */ IWMProfile *pProfile);
  2328.  
  2329.  
  2330. void __RPC_STUB IWMWriter_SetProfile_Stub(
  2331.     IRpcStubBuffer *This,
  2332.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2333.     PRPC_MESSAGE _pRpcMessage,
  2334.     DWORD *_pdwStubPhase);
  2335.  
  2336.  
  2337. HRESULT STDMETHODCALLTYPE IWMWriter_SetOutputFilename_Proxy( 
  2338.     IWMWriter * This,
  2339.     /* [in] */ const WCHAR *pwszFilename);
  2340.  
  2341.  
  2342. void __RPC_STUB IWMWriter_SetOutputFilename_Stub(
  2343.     IRpcStubBuffer *This,
  2344.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2345.     PRPC_MESSAGE _pRpcMessage,
  2346.     DWORD *_pdwStubPhase);
  2347.  
  2348.  
  2349. HRESULT STDMETHODCALLTYPE IWMWriter_GetInputCount_Proxy( 
  2350.     IWMWriter * This,
  2351.     /* [out] */ DWORD *pcInputs);
  2352.  
  2353.  
  2354. void __RPC_STUB IWMWriter_GetInputCount_Stub(
  2355.     IRpcStubBuffer *This,
  2356.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2357.     PRPC_MESSAGE _pRpcMessage,
  2358.     DWORD *_pdwStubPhase);
  2359.  
  2360.  
  2361. HRESULT STDMETHODCALLTYPE IWMWriter_GetInputProps_Proxy( 
  2362.     IWMWriter * This,
  2363.     /* [in] */ DWORD dwInputNum,
  2364.     /* [out] */ IWMInputMediaProps **ppInput);
  2365.  
  2366.  
  2367. void __RPC_STUB IWMWriter_GetInputProps_Stub(
  2368.     IRpcStubBuffer *This,
  2369.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2370.     PRPC_MESSAGE _pRpcMessage,
  2371.     DWORD *_pdwStubPhase);
  2372.  
  2373.  
  2374. HRESULT STDMETHODCALLTYPE IWMWriter_SetInputProps_Proxy( 
  2375.     IWMWriter * This,
  2376.     /* [in] */ DWORD dwInputNum,
  2377.     /* [in] */ IWMInputMediaProps *pInput);
  2378.  
  2379.  
  2380. void __RPC_STUB IWMWriter_SetInputProps_Stub(
  2381.     IRpcStubBuffer *This,
  2382.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2383.     PRPC_MESSAGE _pRpcMessage,
  2384.     DWORD *_pdwStubPhase);
  2385.  
  2386.  
  2387. HRESULT STDMETHODCALLTYPE IWMWriter_GetInputFormatCount_Proxy( 
  2388.     IWMWriter * This,
  2389.     /* [in] */ DWORD dwInputNumber,
  2390.     /* [out] */ DWORD *pcFormats);
  2391.  
  2392.  
  2393. void __RPC_STUB IWMWriter_GetInputFormatCount_Stub(
  2394.     IRpcStubBuffer *This,
  2395.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2396.     PRPC_MESSAGE _pRpcMessage,
  2397.     DWORD *_pdwStubPhase);
  2398.  
  2399.  
  2400. HRESULT STDMETHODCALLTYPE IWMWriter_GetInputFormat_Proxy( 
  2401.     IWMWriter * This,
  2402.     /* [in] */ DWORD dwInputNumber,
  2403.     /* [in] */ DWORD dwFormatNumber,
  2404.     /* [out] */ IWMInputMediaProps **pProps);
  2405.  
  2406.  
  2407. void __RPC_STUB IWMWriter_GetInputFormat_Stub(
  2408.     IRpcStubBuffer *This,
  2409.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2410.     PRPC_MESSAGE _pRpcMessage,
  2411.     DWORD *_pdwStubPhase);
  2412.  
  2413.  
  2414. HRESULT STDMETHODCALLTYPE IWMWriter_BeginWriting_Proxy( 
  2415.     IWMWriter * This);
  2416.  
  2417.  
  2418. void __RPC_STUB IWMWriter_BeginWriting_Stub(
  2419.     IRpcStubBuffer *This,
  2420.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2421.     PRPC_MESSAGE _pRpcMessage,
  2422.     DWORD *_pdwStubPhase);
  2423.  
  2424.  
  2425. HRESULT STDMETHODCALLTYPE IWMWriter_EndWriting_Proxy( 
  2426.     IWMWriter * This);
  2427.  
  2428.  
  2429. void __RPC_STUB IWMWriter_EndWriting_Stub(
  2430.     IRpcStubBuffer *This,
  2431.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2432.     PRPC_MESSAGE _pRpcMessage,
  2433.     DWORD *_pdwStubPhase);
  2434.  
  2435.  
  2436. HRESULT STDMETHODCALLTYPE IWMWriter_AllocateSample_Proxy( 
  2437.     IWMWriter * This,
  2438.     /* [in] */ DWORD dwSampleSize,
  2439.     /* [out] */ INSSBuffer **ppSample);
  2440.  
  2441.  
  2442. void __RPC_STUB IWMWriter_AllocateSample_Stub(
  2443.     IRpcStubBuffer *This,
  2444.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2445.     PRPC_MESSAGE _pRpcMessage,
  2446.     DWORD *_pdwStubPhase);
  2447.  
  2448.  
  2449. HRESULT STDMETHODCALLTYPE IWMWriter_WriteSample_Proxy( 
  2450.     IWMWriter * This,
  2451.     /* [in] */ DWORD dwInputNum,
  2452.     /* [in] */ QWORD cnsSampleTime,
  2453.     /* [in] */ DWORD dwFlags,
  2454.     /* [in] */ INSSBuffer *pSample);
  2455.  
  2456.  
  2457. void __RPC_STUB IWMWriter_WriteSample_Stub(
  2458.     IRpcStubBuffer *This,
  2459.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2460.     PRPC_MESSAGE _pRpcMessage,
  2461.     DWORD *_pdwStubPhase);
  2462.  
  2463.  
  2464. HRESULT STDMETHODCALLTYPE IWMWriter_Flush_Proxy( 
  2465.     IWMWriter * This);
  2466.  
  2467.  
  2468. void __RPC_STUB IWMWriter_Flush_Stub(
  2469.     IRpcStubBuffer *This,
  2470.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2471.     PRPC_MESSAGE _pRpcMessage,
  2472.     DWORD *_pdwStubPhase);
  2473.  
  2474.  
  2475.  
  2476. #endif     /* __IWMWriter_INTERFACE_DEFINED__ */
  2477.  
  2478.  
  2479. #ifndef __IWMDRMWriter_INTERFACE_DEFINED__
  2480. #define __IWMDRMWriter_INTERFACE_DEFINED__
  2481.  
  2482. /* interface IWMDRMWriter */
  2483. /* [local][unique][helpstring][uuid][object] */ 
  2484.  
  2485.  
  2486. EXTERN_C const IID IID_IWMDRMWriter;
  2487.  
  2488. #if defined(__cplusplus) && !defined(CINTERFACE)
  2489.     
  2490.     MIDL_INTERFACE("d6ea5dd0-12a0-43f4-90ab-a3fd451e6a07")
  2491.     IWMDRMWriter : public IUnknown
  2492.     {
  2493.     public:
  2494.         virtual HRESULT STDMETHODCALLTYPE GenerateKeySeed( 
  2495.             /* [size_is][out] */ WCHAR *pwszKeySeed,
  2496.             /* [out][in] */ DWORD *pcwchLength) = 0;
  2497.         
  2498.         virtual HRESULT STDMETHODCALLTYPE GenerateKeyID( 
  2499.             /* [size_is][out] */ WCHAR *pwszKeyID,
  2500.             /* [out][in] */ DWORD *pcwchLength) = 0;
  2501.         
  2502.         virtual HRESULT STDMETHODCALLTYPE GenerateSigningKeyPair( 
  2503.             /* [size_is][out] */ WCHAR *pwszPrivKey,
  2504.             /* [out][in] */ DWORD *pcwchPrivKeyLength,
  2505.             /* [size_is][out] */ WCHAR *pwszPubKey,
  2506.             /* [out][in] */ DWORD *pcwchPubKeyLength) = 0;
  2507.         
  2508.         virtual HRESULT STDMETHODCALLTYPE SetDRMAttribute( 
  2509.             /* [in] */ WORD wStreamNum,
  2510.             /* [in] */ LPCWSTR pszName,
  2511.             /* [in] */ WMT_ATTR_DATATYPE Type,
  2512.             /* [size_is][in] */ const BYTE *pValue,
  2513.             /* [in] */ WORD cbLength) = 0;
  2514.         
  2515.     };
  2516.     
  2517. #else     /* C style interface */
  2518.  
  2519.     typedef struct IWMDRMWriterVtbl
  2520.     {
  2521.         BEGIN_INTERFACE
  2522.         
  2523.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2524.             IWMDRMWriter * This,
  2525.             /* [in] */ REFIID riid,
  2526.             /* [iid_is][out] */ void **ppvObject);
  2527.         
  2528.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2529.             IWMDRMWriter * This);
  2530.         
  2531.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2532.             IWMDRMWriter * This);
  2533.         
  2534.         HRESULT ( STDMETHODCALLTYPE *GenerateKeySeed )( 
  2535.             IWMDRMWriter * This,
  2536.             /* [size_is][out] */ WCHAR *pwszKeySeed,
  2537.             /* [out][in] */ DWORD *pcwchLength);
  2538.         
  2539.         HRESULT ( STDMETHODCALLTYPE *GenerateKeyID )( 
  2540.             IWMDRMWriter * This,
  2541.             /* [size_is][out] */ WCHAR *pwszKeyID,
  2542.             /* [out][in] */ DWORD *pcwchLength);
  2543.         
  2544.         HRESULT ( STDMETHODCALLTYPE *GenerateSigningKeyPair )( 
  2545.             IWMDRMWriter * This,
  2546.             /* [size_is][out] */ WCHAR *pwszPrivKey,
  2547.             /* [out][in] */ DWORD *pcwchPrivKeyLength,
  2548.             /* [size_is][out] */ WCHAR *pwszPubKey,
  2549.             /* [out][in] */ DWORD *pcwchPubKeyLength);
  2550.         
  2551.         HRESULT ( STDMETHODCALLTYPE *SetDRMAttribute )( 
  2552.             IWMDRMWriter * This,
  2553.             /* [in] */ WORD wStreamNum,
  2554.             /* [in] */ LPCWSTR pszName,
  2555.             /* [in] */ WMT_ATTR_DATATYPE Type,
  2556.             /* [size_is][in] */ const BYTE *pValue,
  2557.             /* [in] */ WORD cbLength);
  2558.         
  2559.         END_INTERFACE
  2560.     } IWMDRMWriterVtbl;
  2561.  
  2562.     interface IWMDRMWriter
  2563.     {
  2564.         CONST_VTBL struct IWMDRMWriterVtbl *lpVtbl;
  2565.     };
  2566.  
  2567.     
  2568.  
  2569. #ifdef COBJMACROS
  2570.  
  2571.  
  2572. #define IWMDRMWriter_QueryInterface(This,riid,ppvObject)    \
  2573.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2574.  
  2575. #define IWMDRMWriter_AddRef(This)    \
  2576.     (This)->lpVtbl -> AddRef(This)
  2577.  
  2578. #define IWMDRMWriter_Release(This)    \
  2579.     (This)->lpVtbl -> Release(This)
  2580.  
  2581.  
  2582. #define IWMDRMWriter_GenerateKeySeed(This,pwszKeySeed,pcwchLength)    \
  2583.     (This)->lpVtbl -> GenerateKeySeed(This,pwszKeySeed,pcwchLength)
  2584.  
  2585. #define IWMDRMWriter_GenerateKeyID(This,pwszKeyID,pcwchLength)    \
  2586.     (This)->lpVtbl -> GenerateKeyID(This,pwszKeyID,pcwchLength)
  2587.  
  2588. #define IWMDRMWriter_GenerateSigningKeyPair(This,pwszPrivKey,pcwchPrivKeyLength,pwszPubKey,pcwchPubKeyLength)    \
  2589.     (This)->lpVtbl -> GenerateSigningKeyPair(This,pwszPrivKey,pcwchPrivKeyLength,pwszPubKey,pcwchPubKeyLength)
  2590.  
  2591. #define IWMDRMWriter_SetDRMAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)    \
  2592.     (This)->lpVtbl -> SetDRMAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)
  2593.  
  2594. #endif /* COBJMACROS */
  2595.  
  2596.  
  2597. #endif     /* C style interface */
  2598.  
  2599.  
  2600.  
  2601. HRESULT STDMETHODCALLTYPE IWMDRMWriter_GenerateKeySeed_Proxy( 
  2602.     IWMDRMWriter * This,
  2603.     /* [size_is][out] */ WCHAR *pwszKeySeed,
  2604.     /* [out][in] */ DWORD *pcwchLength);
  2605.  
  2606.  
  2607. void __RPC_STUB IWMDRMWriter_GenerateKeySeed_Stub(
  2608.     IRpcStubBuffer *This,
  2609.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2610.     PRPC_MESSAGE _pRpcMessage,
  2611.     DWORD *_pdwStubPhase);
  2612.  
  2613.  
  2614. HRESULT STDMETHODCALLTYPE IWMDRMWriter_GenerateKeyID_Proxy( 
  2615.     IWMDRMWriter * This,
  2616.     /* [size_is][out] */ WCHAR *pwszKeyID,
  2617.     /* [out][in] */ DWORD *pcwchLength);
  2618.  
  2619.  
  2620. void __RPC_STUB IWMDRMWriter_GenerateKeyID_Stub(
  2621.     IRpcStubBuffer *This,
  2622.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2623.     PRPC_MESSAGE _pRpcMessage,
  2624.     DWORD *_pdwStubPhase);
  2625.  
  2626.  
  2627. HRESULT STDMETHODCALLTYPE IWMDRMWriter_GenerateSigningKeyPair_Proxy( 
  2628.     IWMDRMWriter * This,
  2629.     /* [size_is][out] */ WCHAR *pwszPrivKey,
  2630.     /* [out][in] */ DWORD *pcwchPrivKeyLength,
  2631.     /* [size_is][out] */ WCHAR *pwszPubKey,
  2632.     /* [out][in] */ DWORD *pcwchPubKeyLength);
  2633.  
  2634.  
  2635. void __RPC_STUB IWMDRMWriter_GenerateSigningKeyPair_Stub(
  2636.     IRpcStubBuffer *This,
  2637.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2638.     PRPC_MESSAGE _pRpcMessage,
  2639.     DWORD *_pdwStubPhase);
  2640.  
  2641.  
  2642. HRESULT STDMETHODCALLTYPE IWMDRMWriter_SetDRMAttribute_Proxy( 
  2643.     IWMDRMWriter * This,
  2644.     /* [in] */ WORD wStreamNum,
  2645.     /* [in] */ LPCWSTR pszName,
  2646.     /* [in] */ WMT_ATTR_DATATYPE Type,
  2647.     /* [size_is][in] */ const BYTE *pValue,
  2648.     /* [in] */ WORD cbLength);
  2649.  
  2650.  
  2651. void __RPC_STUB IWMDRMWriter_SetDRMAttribute_Stub(
  2652.     IRpcStubBuffer *This,
  2653.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2654.     PRPC_MESSAGE _pRpcMessage,
  2655.     DWORD *_pdwStubPhase);
  2656.  
  2657.  
  2658.  
  2659. #endif     /* __IWMDRMWriter_INTERFACE_DEFINED__ */
  2660.  
  2661.  
  2662. #ifndef __IWMInputMediaProps_INTERFACE_DEFINED__
  2663. #define __IWMInputMediaProps_INTERFACE_DEFINED__
  2664.  
  2665. /* interface IWMInputMediaProps */
  2666. /* [local][unique][helpstring][uuid][object] */ 
  2667.  
  2668.  
  2669. EXTERN_C const IID IID_IWMInputMediaProps;
  2670.  
  2671. #if defined(__cplusplus) && !defined(CINTERFACE)
  2672.     
  2673.     MIDL_INTERFACE("96406BD5-2B2B-11d3-B36B-00C04F6108FF")
  2674.     IWMInputMediaProps : public IWMMediaProps
  2675.     {
  2676.     public:
  2677.         virtual HRESULT STDMETHODCALLTYPE GetConnectionName( 
  2678.             /* [size_is][out] */ WCHAR *pwszName,
  2679.             /* [out][in] */ WORD *pcchName) = 0;
  2680.         
  2681.         virtual HRESULT STDMETHODCALLTYPE GetGroupName( 
  2682.             /* [size_is][out] */ WCHAR *pwszName,
  2683.             /* [out][in] */ WORD *pcchName) = 0;
  2684.         
  2685.     };
  2686.     
  2687. #else     /* C style interface */
  2688.  
  2689.     typedef struct IWMInputMediaPropsVtbl
  2690.     {
  2691.         BEGIN_INTERFACE
  2692.         
  2693.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2694.             IWMInputMediaProps * This,
  2695.             /* [in] */ REFIID riid,
  2696.             /* [iid_is][out] */ void **ppvObject);
  2697.         
  2698.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2699.             IWMInputMediaProps * This);
  2700.         
  2701.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2702.             IWMInputMediaProps * This);
  2703.         
  2704.         HRESULT ( STDMETHODCALLTYPE *GetType )( 
  2705.             IWMInputMediaProps * This,
  2706.             /* [out] */ GUID *pguidType);
  2707.         
  2708.         HRESULT ( STDMETHODCALLTYPE *GetMediaType )( 
  2709.             IWMInputMediaProps * This,
  2710.             /* [out] */ WM_MEDIA_TYPE *pType,
  2711.             /* [out][in] */ DWORD *pcbType);
  2712.         
  2713.         HRESULT ( STDMETHODCALLTYPE *SetMediaType )( 
  2714.             IWMInputMediaProps * This,
  2715.             /* [in] */ WM_MEDIA_TYPE *pType);
  2716.         
  2717.         HRESULT ( STDMETHODCALLTYPE *GetConnectionName )( 
  2718.             IWMInputMediaProps * This,
  2719.             /* [size_is][out] */ WCHAR *pwszName,
  2720.             /* [out][in] */ WORD *pcchName);
  2721.         
  2722.         HRESULT ( STDMETHODCALLTYPE *GetGroupName )( 
  2723.             IWMInputMediaProps * This,
  2724.             /* [size_is][out] */ WCHAR *pwszName,
  2725.             /* [out][in] */ WORD *pcchName);
  2726.         
  2727.         END_INTERFACE
  2728.     } IWMInputMediaPropsVtbl;
  2729.  
  2730.     interface IWMInputMediaProps
  2731.     {
  2732.         CONST_VTBL struct IWMInputMediaPropsVtbl *lpVtbl;
  2733.     };
  2734.  
  2735.     
  2736.  
  2737. #ifdef COBJMACROS
  2738.  
  2739.  
  2740. #define IWMInputMediaProps_QueryInterface(This,riid,ppvObject)    \
  2741.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2742.  
  2743. #define IWMInputMediaProps_AddRef(This)    \
  2744.     (This)->lpVtbl -> AddRef(This)
  2745.  
  2746. #define IWMInputMediaProps_Release(This)    \
  2747.     (This)->lpVtbl -> Release(This)
  2748.  
  2749.  
  2750. #define IWMInputMediaProps_GetType(This,pguidType)    \
  2751.     (This)->lpVtbl -> GetType(This,pguidType)
  2752.  
  2753. #define IWMInputMediaProps_GetMediaType(This,pType,pcbType)    \
  2754.     (This)->lpVtbl -> GetMediaType(This,pType,pcbType)
  2755.  
  2756. #define IWMInputMediaProps_SetMediaType(This,pType)    \
  2757.     (This)->lpVtbl -> SetMediaType(This,pType)
  2758.  
  2759.  
  2760. #define IWMInputMediaProps_GetConnectionName(This,pwszName,pcchName)    \
  2761.     (This)->lpVtbl -> GetConnectionName(This,pwszName,pcchName)
  2762.  
  2763. #define IWMInputMediaProps_GetGroupName(This,pwszName,pcchName)    \
  2764.     (This)->lpVtbl -> GetGroupName(This,pwszName,pcchName)
  2765.  
  2766. #endif /* COBJMACROS */
  2767.  
  2768.  
  2769. #endif     /* C style interface */
  2770.  
  2771.  
  2772.  
  2773. HRESULT STDMETHODCALLTYPE IWMInputMediaProps_GetConnectionName_Proxy( 
  2774.     IWMInputMediaProps * This,
  2775.     /* [size_is][out] */ WCHAR *pwszName,
  2776.     /* [out][in] */ WORD *pcchName);
  2777.  
  2778.  
  2779. void __RPC_STUB IWMInputMediaProps_GetConnectionName_Stub(
  2780.     IRpcStubBuffer *This,
  2781.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2782.     PRPC_MESSAGE _pRpcMessage,
  2783.     DWORD *_pdwStubPhase);
  2784.  
  2785.  
  2786. HRESULT STDMETHODCALLTYPE IWMInputMediaProps_GetGroupName_Proxy( 
  2787.     IWMInputMediaProps * This,
  2788.     /* [size_is][out] */ WCHAR *pwszName,
  2789.     /* [out][in] */ WORD *pcchName);
  2790.  
  2791.  
  2792. void __RPC_STUB IWMInputMediaProps_GetGroupName_Stub(
  2793.     IRpcStubBuffer *This,
  2794.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2795.     PRPC_MESSAGE _pRpcMessage,
  2796.     DWORD *_pdwStubPhase);
  2797.  
  2798.  
  2799.  
  2800. #endif     /* __IWMInputMediaProps_INTERFACE_DEFINED__ */
  2801.  
  2802.  
  2803. #ifndef __IWMPropertyVault_INTERFACE_DEFINED__
  2804. #define __IWMPropertyVault_INTERFACE_DEFINED__
  2805.  
  2806. /* interface IWMPropertyVault */
  2807. /* [local][unique][helpstring][uuid][object] */ 
  2808.  
  2809.  
  2810. EXTERN_C const IID IID_IWMPropertyVault;
  2811.  
  2812. #if defined(__cplusplus) && !defined(CINTERFACE)
  2813.     
  2814.     MIDL_INTERFACE("72995A79-5090-42a4-9C8C-D9D0B6D34BE5")
  2815.     IWMPropertyVault : public IUnknown
  2816.     {
  2817.     public:
  2818.         virtual HRESULT STDMETHODCALLTYPE GetPropertyCount( 
  2819.             /* [in] */ DWORD *pdwCount) = 0;
  2820.         
  2821.         virtual HRESULT STDMETHODCALLTYPE GetPropertyByName( 
  2822.             /* [in] */ LPCWSTR pszName,
  2823.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  2824.             /* [size_is][out] */ BYTE *pValue,
  2825.             /* [out][in] */ DWORD *pdwSize) = 0;
  2826.         
  2827.         virtual HRESULT STDMETHODCALLTYPE SetProperty( 
  2828.             /* [in] */ LPCWSTR pszName,
  2829.             /* [in] */ WMT_ATTR_DATATYPE pType,
  2830.             /* [in] */ BYTE *pValue,
  2831.             /* [in] */ DWORD dwSize) = 0;
  2832.         
  2833.         virtual HRESULT STDMETHODCALLTYPE GetPropertyByIndex( 
  2834.             /* [in] */ DWORD dwIndex,
  2835.             /* [size_is][out] */ LPWSTR pszName,
  2836.             /* [out][in] */ DWORD *pdwNameLen,
  2837.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  2838.             /* [size_is][out] */ BYTE *pValue,
  2839.             /* [out][in] */ DWORD *pdwSize) = 0;
  2840.         
  2841.         virtual HRESULT STDMETHODCALLTYPE CopyPropertiesFrom( 
  2842.             /* [in] */ IWMPropertyVault *pIWMPropertyVault) = 0;
  2843.         
  2844.         virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0;
  2845.         
  2846.     };
  2847.     
  2848. #else     /* C style interface */
  2849.  
  2850.     typedef struct IWMPropertyVaultVtbl
  2851.     {
  2852.         BEGIN_INTERFACE
  2853.         
  2854.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2855.             IWMPropertyVault * This,
  2856.             /* [in] */ REFIID riid,
  2857.             /* [iid_is][out] */ void **ppvObject);
  2858.         
  2859.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2860.             IWMPropertyVault * This);
  2861.         
  2862.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2863.             IWMPropertyVault * This);
  2864.         
  2865.         HRESULT ( STDMETHODCALLTYPE *GetPropertyCount )( 
  2866.             IWMPropertyVault * This,
  2867.             /* [in] */ DWORD *pdwCount);
  2868.         
  2869.         HRESULT ( STDMETHODCALLTYPE *GetPropertyByName )( 
  2870.             IWMPropertyVault * This,
  2871.             /* [in] */ LPCWSTR pszName,
  2872.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  2873.             /* [size_is][out] */ BYTE *pValue,
  2874.             /* [out][in] */ DWORD *pdwSize);
  2875.         
  2876.         HRESULT ( STDMETHODCALLTYPE *SetProperty )( 
  2877.             IWMPropertyVault * This,
  2878.             /* [in] */ LPCWSTR pszName,
  2879.             /* [in] */ WMT_ATTR_DATATYPE pType,
  2880.             /* [in] */ BYTE *pValue,
  2881.             /* [in] */ DWORD dwSize);
  2882.         
  2883.         HRESULT ( STDMETHODCALLTYPE *GetPropertyByIndex )( 
  2884.             IWMPropertyVault * This,
  2885.             /* [in] */ DWORD dwIndex,
  2886.             /* [size_is][out] */ LPWSTR pszName,
  2887.             /* [out][in] */ DWORD *pdwNameLen,
  2888.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  2889.             /* [size_is][out] */ BYTE *pValue,
  2890.             /* [out][in] */ DWORD *pdwSize);
  2891.         
  2892.         HRESULT ( STDMETHODCALLTYPE *CopyPropertiesFrom )( 
  2893.             IWMPropertyVault * This,
  2894.             /* [in] */ IWMPropertyVault *pIWMPropertyVault);
  2895.         
  2896.         HRESULT ( STDMETHODCALLTYPE *Clear )( 
  2897.             IWMPropertyVault * This);
  2898.         
  2899.         END_INTERFACE
  2900.     } IWMPropertyVaultVtbl;
  2901.  
  2902.     interface IWMPropertyVault
  2903.     {
  2904.         CONST_VTBL struct IWMPropertyVaultVtbl *lpVtbl;
  2905.     };
  2906.  
  2907.     
  2908.  
  2909. #ifdef COBJMACROS
  2910.  
  2911.  
  2912. #define IWMPropertyVault_QueryInterface(This,riid,ppvObject)    \
  2913.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2914.  
  2915. #define IWMPropertyVault_AddRef(This)    \
  2916.     (This)->lpVtbl -> AddRef(This)
  2917.  
  2918. #define IWMPropertyVault_Release(This)    \
  2919.     (This)->lpVtbl -> Release(This)
  2920.  
  2921.  
  2922. #define IWMPropertyVault_GetPropertyCount(This,pdwCount)    \
  2923.     (This)->lpVtbl -> GetPropertyCount(This,pdwCount)
  2924.  
  2925. #define IWMPropertyVault_GetPropertyByName(This,pszName,pType,pValue,pdwSize)    \
  2926.     (This)->lpVtbl -> GetPropertyByName(This,pszName,pType,pValue,pdwSize)
  2927.  
  2928. #define IWMPropertyVault_SetProperty(This,pszName,pType,pValue,dwSize)    \
  2929.     (This)->lpVtbl -> SetProperty(This,pszName,pType,pValue,dwSize)
  2930.  
  2931. #define IWMPropertyVault_GetPropertyByIndex(This,dwIndex,pszName,pdwNameLen,pType,pValue,pdwSize)    \
  2932.     (This)->lpVtbl -> GetPropertyByIndex(This,dwIndex,pszName,pdwNameLen,pType,pValue,pdwSize)
  2933.  
  2934. #define IWMPropertyVault_CopyPropertiesFrom(This,pIWMPropertyVault)    \
  2935.     (This)->lpVtbl -> CopyPropertiesFrom(This,pIWMPropertyVault)
  2936.  
  2937. #define IWMPropertyVault_Clear(This)    \
  2938.     (This)->lpVtbl -> Clear(This)
  2939.  
  2940. #endif /* COBJMACROS */
  2941.  
  2942.  
  2943. #endif     /* C style interface */
  2944.  
  2945.  
  2946.  
  2947. HRESULT STDMETHODCALLTYPE IWMPropertyVault_GetPropertyCount_Proxy( 
  2948.     IWMPropertyVault * This,
  2949.     /* [in] */ DWORD *pdwCount);
  2950.  
  2951.  
  2952. void __RPC_STUB IWMPropertyVault_GetPropertyCount_Stub(
  2953.     IRpcStubBuffer *This,
  2954.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2955.     PRPC_MESSAGE _pRpcMessage,
  2956.     DWORD *_pdwStubPhase);
  2957.  
  2958.  
  2959. HRESULT STDMETHODCALLTYPE IWMPropertyVault_GetPropertyByName_Proxy( 
  2960.     IWMPropertyVault * This,
  2961.     /* [in] */ LPCWSTR pszName,
  2962.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  2963.     /* [size_is][out] */ BYTE *pValue,
  2964.     /* [out][in] */ DWORD *pdwSize);
  2965.  
  2966.  
  2967. void __RPC_STUB IWMPropertyVault_GetPropertyByName_Stub(
  2968.     IRpcStubBuffer *This,
  2969.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2970.     PRPC_MESSAGE _pRpcMessage,
  2971.     DWORD *_pdwStubPhase);
  2972.  
  2973.  
  2974. HRESULT STDMETHODCALLTYPE IWMPropertyVault_SetProperty_Proxy( 
  2975.     IWMPropertyVault * This,
  2976.     /* [in] */ LPCWSTR pszName,
  2977.     /* [in] */ WMT_ATTR_DATATYPE pType,
  2978.     /* [in] */ BYTE *pValue,
  2979.     /* [in] */ DWORD dwSize);
  2980.  
  2981.  
  2982. void __RPC_STUB IWMPropertyVault_SetProperty_Stub(
  2983.     IRpcStubBuffer *This,
  2984.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2985.     PRPC_MESSAGE _pRpcMessage,
  2986.     DWORD *_pdwStubPhase);
  2987.  
  2988.  
  2989. HRESULT STDMETHODCALLTYPE IWMPropertyVault_GetPropertyByIndex_Proxy( 
  2990.     IWMPropertyVault * This,
  2991.     /* [in] */ DWORD dwIndex,
  2992.     /* [size_is][out] */ LPWSTR pszName,
  2993.     /* [out][in] */ DWORD *pdwNameLen,
  2994.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  2995.     /* [size_is][out] */ BYTE *pValue,
  2996.     /* [out][in] */ DWORD *pdwSize);
  2997.  
  2998.  
  2999. void __RPC_STUB IWMPropertyVault_GetPropertyByIndex_Stub(
  3000.     IRpcStubBuffer *This,
  3001.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3002.     PRPC_MESSAGE _pRpcMessage,
  3003.     DWORD *_pdwStubPhase);
  3004.  
  3005.  
  3006. HRESULT STDMETHODCALLTYPE IWMPropertyVault_CopyPropertiesFrom_Proxy( 
  3007.     IWMPropertyVault * This,
  3008.     /* [in] */ IWMPropertyVault *pIWMPropertyVault);
  3009.  
  3010.  
  3011. void __RPC_STUB IWMPropertyVault_CopyPropertiesFrom_Stub(
  3012.     IRpcStubBuffer *This,
  3013.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3014.     PRPC_MESSAGE _pRpcMessage,
  3015.     DWORD *_pdwStubPhase);
  3016.  
  3017.  
  3018. HRESULT STDMETHODCALLTYPE IWMPropertyVault_Clear_Proxy( 
  3019.     IWMPropertyVault * This);
  3020.  
  3021.  
  3022. void __RPC_STUB IWMPropertyVault_Clear_Stub(
  3023.     IRpcStubBuffer *This,
  3024.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3025.     PRPC_MESSAGE _pRpcMessage,
  3026.     DWORD *_pdwStubPhase);
  3027.  
  3028.  
  3029.  
  3030. #endif     /* __IWMPropertyVault_INTERFACE_DEFINED__ */
  3031.  
  3032.  
  3033. #ifndef __IWMIStreamProps_INTERFACE_DEFINED__
  3034. #define __IWMIStreamProps_INTERFACE_DEFINED__
  3035.  
  3036. /* interface IWMIStreamProps */
  3037. /* [local][unique][helpstring][uuid][object] */ 
  3038.  
  3039.  
  3040. EXTERN_C const IID IID_IWMIStreamProps;
  3041.  
  3042. #if defined(__cplusplus) && !defined(CINTERFACE)
  3043.     
  3044.     MIDL_INTERFACE("6816dad3-2b4b-4c8e-8149-874c3483a753")
  3045.     IWMIStreamProps : public IUnknown
  3046.     {
  3047.     public:
  3048.         virtual HRESULT STDMETHODCALLTYPE GetProperty( 
  3049.             /* [in] */ LPCWSTR pszName,
  3050.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  3051.             /* [size_is][out] */ BYTE *pValue,
  3052.             /* [out][in] */ DWORD *pdwSize) = 0;
  3053.         
  3054.     };
  3055.     
  3056. #else     /* C style interface */
  3057.  
  3058.     typedef struct IWMIStreamPropsVtbl
  3059.     {
  3060.         BEGIN_INTERFACE
  3061.         
  3062.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3063.             IWMIStreamProps * This,
  3064.             /* [in] */ REFIID riid,
  3065.             /* [iid_is][out] */ void **ppvObject);
  3066.         
  3067.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3068.             IWMIStreamProps * This);
  3069.         
  3070.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3071.             IWMIStreamProps * This);
  3072.         
  3073.         HRESULT ( STDMETHODCALLTYPE *GetProperty )( 
  3074.             IWMIStreamProps * This,
  3075.             /* [in] */ LPCWSTR pszName,
  3076.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  3077.             /* [size_is][out] */ BYTE *pValue,
  3078.             /* [out][in] */ DWORD *pdwSize);
  3079.         
  3080.         END_INTERFACE
  3081.     } IWMIStreamPropsVtbl;
  3082.  
  3083.     interface IWMIStreamProps
  3084.     {
  3085.         CONST_VTBL struct IWMIStreamPropsVtbl *lpVtbl;
  3086.     };
  3087.  
  3088.     
  3089.  
  3090. #ifdef COBJMACROS
  3091.  
  3092.  
  3093. #define IWMIStreamProps_QueryInterface(This,riid,ppvObject)    \
  3094.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3095.  
  3096. #define IWMIStreamProps_AddRef(This)    \
  3097.     (This)->lpVtbl -> AddRef(This)
  3098.  
  3099. #define IWMIStreamProps_Release(This)    \
  3100.     (This)->lpVtbl -> Release(This)
  3101.  
  3102.  
  3103. #define IWMIStreamProps_GetProperty(This,pszName,pType,pValue,pdwSize)    \
  3104.     (This)->lpVtbl -> GetProperty(This,pszName,pType,pValue,pdwSize)
  3105.  
  3106. #endif /* COBJMACROS */
  3107.  
  3108.  
  3109. #endif     /* C style interface */
  3110.  
  3111.  
  3112.  
  3113. HRESULT STDMETHODCALLTYPE IWMIStreamProps_GetProperty_Proxy( 
  3114.     IWMIStreamProps * This,
  3115.     /* [in] */ LPCWSTR pszName,
  3116.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  3117.     /* [size_is][out] */ BYTE *pValue,
  3118.     /* [out][in] */ DWORD *pdwSize);
  3119.  
  3120.  
  3121. void __RPC_STUB IWMIStreamProps_GetProperty_Stub(
  3122.     IRpcStubBuffer *This,
  3123.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3124.     PRPC_MESSAGE _pRpcMessage,
  3125.     DWORD *_pdwStubPhase);
  3126.  
  3127.  
  3128.  
  3129. #endif     /* __IWMIStreamProps_INTERFACE_DEFINED__ */
  3130.  
  3131.  
  3132. #ifndef __IWMReader_INTERFACE_DEFINED__
  3133. #define __IWMReader_INTERFACE_DEFINED__
  3134.  
  3135. /* interface IWMReader */
  3136. /* [local][unique][helpstring][uuid][object] */ 
  3137.  
  3138.  
  3139. EXTERN_C const IID IID_IWMReader;
  3140.  
  3141. #if defined(__cplusplus) && !defined(CINTERFACE)
  3142.     
  3143.     MIDL_INTERFACE("96406BD6-2B2B-11d3-B36B-00C04F6108FF")
  3144.     IWMReader : public IUnknown
  3145.     {
  3146.     public:
  3147.         virtual HRESULT STDMETHODCALLTYPE Open( 
  3148.             /* [in] */ const WCHAR *pwszURL,
  3149.             /* [in] */ IWMReaderCallback *pCallback,
  3150.             /* [in] */ void *pvContext) = 0;
  3151.         
  3152.         virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  3153.         
  3154.         virtual HRESULT STDMETHODCALLTYPE GetOutputCount( 
  3155.             /* [out] */ DWORD *pcOutputs) = 0;
  3156.         
  3157.         virtual HRESULT STDMETHODCALLTYPE GetOutputProps( 
  3158.             /* [in] */ DWORD dwOutputNum,
  3159.             /* [out] */ IWMOutputMediaProps **ppOutput) = 0;
  3160.         
  3161.         virtual HRESULT STDMETHODCALLTYPE SetOutputProps( 
  3162.             /* [in] */ DWORD dwOutputNum,
  3163.             /* [in] */ IWMOutputMediaProps *pOutput) = 0;
  3164.         
  3165.         virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount( 
  3166.             /* [in] */ DWORD dwOutputNumber,
  3167.             /* [out] */ DWORD *pcFormats) = 0;
  3168.         
  3169.         virtual HRESULT STDMETHODCALLTYPE GetOutputFormat( 
  3170.             /* [in] */ DWORD dwOutputNumber,
  3171.             /* [in] */ DWORD dwFormatNumber,
  3172.             /* [out] */ IWMOutputMediaProps **ppProps) = 0;
  3173.         
  3174.         virtual HRESULT STDMETHODCALLTYPE Start( 
  3175.             /* [in] */ QWORD cnsStart,
  3176.             /* [in] */ QWORD cnsDuration,
  3177.             /* [in] */ float fRate,
  3178.             /* [in] */ void *pvContext) = 0;
  3179.         
  3180.         virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0;
  3181.         
  3182.         virtual HRESULT STDMETHODCALLTYPE Pause( void) = 0;
  3183.         
  3184.         virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
  3185.         
  3186.     };
  3187.     
  3188. #else     /* C style interface */
  3189.  
  3190.     typedef struct IWMReaderVtbl
  3191.     {
  3192.         BEGIN_INTERFACE
  3193.         
  3194.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3195.             IWMReader * This,
  3196.             /* [in] */ REFIID riid,
  3197.             /* [iid_is][out] */ void **ppvObject);
  3198.         
  3199.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3200.             IWMReader * This);
  3201.         
  3202.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3203.             IWMReader * This);
  3204.         
  3205.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  3206.             IWMReader * This,
  3207.             /* [in] */ const WCHAR *pwszURL,
  3208.             /* [in] */ IWMReaderCallback *pCallback,
  3209.             /* [in] */ void *pvContext);
  3210.         
  3211.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  3212.             IWMReader * This);
  3213.         
  3214.         HRESULT ( STDMETHODCALLTYPE *GetOutputCount )( 
  3215.             IWMReader * This,
  3216.             /* [out] */ DWORD *pcOutputs);
  3217.         
  3218.         HRESULT ( STDMETHODCALLTYPE *GetOutputProps )( 
  3219.             IWMReader * This,
  3220.             /* [in] */ DWORD dwOutputNum,
  3221.             /* [out] */ IWMOutputMediaProps **ppOutput);
  3222.         
  3223.         HRESULT ( STDMETHODCALLTYPE *SetOutputProps )( 
  3224.             IWMReader * This,
  3225.             /* [in] */ DWORD dwOutputNum,
  3226.             /* [in] */ IWMOutputMediaProps *pOutput);
  3227.         
  3228.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormatCount )( 
  3229.             IWMReader * This,
  3230.             /* [in] */ DWORD dwOutputNumber,
  3231.             /* [out] */ DWORD *pcFormats);
  3232.         
  3233.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormat )( 
  3234.             IWMReader * This,
  3235.             /* [in] */ DWORD dwOutputNumber,
  3236.             /* [in] */ DWORD dwFormatNumber,
  3237.             /* [out] */ IWMOutputMediaProps **ppProps);
  3238.         
  3239.         HRESULT ( STDMETHODCALLTYPE *Start )( 
  3240.             IWMReader * This,
  3241.             /* [in] */ QWORD cnsStart,
  3242.             /* [in] */ QWORD cnsDuration,
  3243.             /* [in] */ float fRate,
  3244.             /* [in] */ void *pvContext);
  3245.         
  3246.         HRESULT ( STDMETHODCALLTYPE *Stop )( 
  3247.             IWMReader * This);
  3248.         
  3249.         HRESULT ( STDMETHODCALLTYPE *Pause )( 
  3250.             IWMReader * This);
  3251.         
  3252.         HRESULT ( STDMETHODCALLTYPE *Resume )( 
  3253.             IWMReader * This);
  3254.         
  3255.         END_INTERFACE
  3256.     } IWMReaderVtbl;
  3257.  
  3258.     interface IWMReader
  3259.     {
  3260.         CONST_VTBL struct IWMReaderVtbl *lpVtbl;
  3261.     };
  3262.  
  3263.     
  3264.  
  3265. #ifdef COBJMACROS
  3266.  
  3267.  
  3268. #define IWMReader_QueryInterface(This,riid,ppvObject)    \
  3269.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3270.  
  3271. #define IWMReader_AddRef(This)    \
  3272.     (This)->lpVtbl -> AddRef(This)
  3273.  
  3274. #define IWMReader_Release(This)    \
  3275.     (This)->lpVtbl -> Release(This)
  3276.  
  3277.  
  3278. #define IWMReader_Open(This,pwszURL,pCallback,pvContext)    \
  3279.     (This)->lpVtbl -> Open(This,pwszURL,pCallback,pvContext)
  3280.  
  3281. #define IWMReader_Close(This)    \
  3282.     (This)->lpVtbl -> Close(This)
  3283.  
  3284. #define IWMReader_GetOutputCount(This,pcOutputs)    \
  3285.     (This)->lpVtbl -> GetOutputCount(This,pcOutputs)
  3286.  
  3287. #define IWMReader_GetOutputProps(This,dwOutputNum,ppOutput)    \
  3288.     (This)->lpVtbl -> GetOutputProps(This,dwOutputNum,ppOutput)
  3289.  
  3290. #define IWMReader_SetOutputProps(This,dwOutputNum,pOutput)    \
  3291.     (This)->lpVtbl -> SetOutputProps(This,dwOutputNum,pOutput)
  3292.  
  3293. #define IWMReader_GetOutputFormatCount(This,dwOutputNumber,pcFormats)    \
  3294.     (This)->lpVtbl -> GetOutputFormatCount(This,dwOutputNumber,pcFormats)
  3295.  
  3296. #define IWMReader_GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps)    \
  3297.     (This)->lpVtbl -> GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps)
  3298.  
  3299. #define IWMReader_Start(This,cnsStart,cnsDuration,fRate,pvContext)    \
  3300.     (This)->lpVtbl -> Start(This,cnsStart,cnsDuration,fRate,pvContext)
  3301.  
  3302. #define IWMReader_Stop(This)    \
  3303.     (This)->lpVtbl -> Stop(This)
  3304.  
  3305. #define IWMReader_Pause(This)    \
  3306.     (This)->lpVtbl -> Pause(This)
  3307.  
  3308. #define IWMReader_Resume(This)    \
  3309.     (This)->lpVtbl -> Resume(This)
  3310.  
  3311. #endif /* COBJMACROS */
  3312.  
  3313.  
  3314. #endif     /* C style interface */
  3315.  
  3316.  
  3317.  
  3318. HRESULT STDMETHODCALLTYPE IWMReader_Open_Proxy( 
  3319.     IWMReader * This,
  3320.     /* [in] */ const WCHAR *pwszURL,
  3321.     /* [in] */ IWMReaderCallback *pCallback,
  3322.     /* [in] */ void *pvContext);
  3323.  
  3324.  
  3325. void __RPC_STUB IWMReader_Open_Stub(
  3326.     IRpcStubBuffer *This,
  3327.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3328.     PRPC_MESSAGE _pRpcMessage,
  3329.     DWORD *_pdwStubPhase);
  3330.  
  3331.  
  3332. HRESULT STDMETHODCALLTYPE IWMReader_Close_Proxy( 
  3333.     IWMReader * This);
  3334.  
  3335.  
  3336. void __RPC_STUB IWMReader_Close_Stub(
  3337.     IRpcStubBuffer *This,
  3338.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3339.     PRPC_MESSAGE _pRpcMessage,
  3340.     DWORD *_pdwStubPhase);
  3341.  
  3342.  
  3343. HRESULT STDMETHODCALLTYPE IWMReader_GetOutputCount_Proxy( 
  3344.     IWMReader * This,
  3345.     /* [out] */ DWORD *pcOutputs);
  3346.  
  3347.  
  3348. void __RPC_STUB IWMReader_GetOutputCount_Stub(
  3349.     IRpcStubBuffer *This,
  3350.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3351.     PRPC_MESSAGE _pRpcMessage,
  3352.     DWORD *_pdwStubPhase);
  3353.  
  3354.  
  3355. HRESULT STDMETHODCALLTYPE IWMReader_GetOutputProps_Proxy( 
  3356.     IWMReader * This,
  3357.     /* [in] */ DWORD dwOutputNum,
  3358.     /* [out] */ IWMOutputMediaProps **ppOutput);
  3359.  
  3360.  
  3361. void __RPC_STUB IWMReader_GetOutputProps_Stub(
  3362.     IRpcStubBuffer *This,
  3363.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3364.     PRPC_MESSAGE _pRpcMessage,
  3365.     DWORD *_pdwStubPhase);
  3366.  
  3367.  
  3368. HRESULT STDMETHODCALLTYPE IWMReader_SetOutputProps_Proxy( 
  3369.     IWMReader * This,
  3370.     /* [in] */ DWORD dwOutputNum,
  3371.     /* [in] */ IWMOutputMediaProps *pOutput);
  3372.  
  3373.  
  3374. void __RPC_STUB IWMReader_SetOutputProps_Stub(
  3375.     IRpcStubBuffer *This,
  3376.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3377.     PRPC_MESSAGE _pRpcMessage,
  3378.     DWORD *_pdwStubPhase);
  3379.  
  3380.  
  3381. HRESULT STDMETHODCALLTYPE IWMReader_GetOutputFormatCount_Proxy( 
  3382.     IWMReader * This,
  3383.     /* [in] */ DWORD dwOutputNumber,
  3384.     /* [out] */ DWORD *pcFormats);
  3385.  
  3386.  
  3387. void __RPC_STUB IWMReader_GetOutputFormatCount_Stub(
  3388.     IRpcStubBuffer *This,
  3389.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3390.     PRPC_MESSAGE _pRpcMessage,
  3391.     DWORD *_pdwStubPhase);
  3392.  
  3393.  
  3394. HRESULT STDMETHODCALLTYPE IWMReader_GetOutputFormat_Proxy( 
  3395.     IWMReader * This,
  3396.     /* [in] */ DWORD dwOutputNumber,
  3397.     /* [in] */ DWORD dwFormatNumber,
  3398.     /* [out] */ IWMOutputMediaProps **ppProps);
  3399.  
  3400.  
  3401. void __RPC_STUB IWMReader_GetOutputFormat_Stub(
  3402.     IRpcStubBuffer *This,
  3403.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3404.     PRPC_MESSAGE _pRpcMessage,
  3405.     DWORD *_pdwStubPhase);
  3406.  
  3407.  
  3408. HRESULT STDMETHODCALLTYPE IWMReader_Start_Proxy( 
  3409.     IWMReader * This,
  3410.     /* [in] */ QWORD cnsStart,
  3411.     /* [in] */ QWORD cnsDuration,
  3412.     /* [in] */ float fRate,
  3413.     /* [in] */ void *pvContext);
  3414.  
  3415.  
  3416. void __RPC_STUB IWMReader_Start_Stub(
  3417.     IRpcStubBuffer *This,
  3418.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3419.     PRPC_MESSAGE _pRpcMessage,
  3420.     DWORD *_pdwStubPhase);
  3421.  
  3422.  
  3423. HRESULT STDMETHODCALLTYPE IWMReader_Stop_Proxy( 
  3424.     IWMReader * This);
  3425.  
  3426.  
  3427. void __RPC_STUB IWMReader_Stop_Stub(
  3428.     IRpcStubBuffer *This,
  3429.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3430.     PRPC_MESSAGE _pRpcMessage,
  3431.     DWORD *_pdwStubPhase);
  3432.  
  3433.  
  3434. HRESULT STDMETHODCALLTYPE IWMReader_Pause_Proxy( 
  3435.     IWMReader * This);
  3436.  
  3437.  
  3438. void __RPC_STUB IWMReader_Pause_Stub(
  3439.     IRpcStubBuffer *This,
  3440.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3441.     PRPC_MESSAGE _pRpcMessage,
  3442.     DWORD *_pdwStubPhase);
  3443.  
  3444.  
  3445. HRESULT STDMETHODCALLTYPE IWMReader_Resume_Proxy( 
  3446.     IWMReader * This);
  3447.  
  3448.  
  3449. void __RPC_STUB IWMReader_Resume_Stub(
  3450.     IRpcStubBuffer *This,
  3451.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3452.     PRPC_MESSAGE _pRpcMessage,
  3453.     DWORD *_pdwStubPhase);
  3454.  
  3455.  
  3456.  
  3457. #endif     /* __IWMReader_INTERFACE_DEFINED__ */
  3458.  
  3459.  
  3460. #ifndef __IWMSyncReader_INTERFACE_DEFINED__
  3461. #define __IWMSyncReader_INTERFACE_DEFINED__
  3462.  
  3463. /* interface IWMSyncReader */
  3464. /* [local][unique][helpstring][uuid][object] */ 
  3465.  
  3466.  
  3467. EXTERN_C const IID IID_IWMSyncReader;
  3468.  
  3469. #if defined(__cplusplus) && !defined(CINTERFACE)
  3470.     
  3471.     MIDL_INTERFACE("9397F121-7705-4dc9-B049-98B698188414")
  3472.     IWMSyncReader : public IUnknown
  3473.     {
  3474.     public:
  3475.         virtual HRESULT STDMETHODCALLTYPE Open( 
  3476.             /* [in] */ const WCHAR *pwszFilename) = 0;
  3477.         
  3478.         virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  3479.         
  3480.         virtual HRESULT STDMETHODCALLTYPE SetRange( 
  3481.             /* [in] */ QWORD cnsStartTime,
  3482.             /* [in] */ LONGLONG cnsDuration) = 0;
  3483.         
  3484.         virtual HRESULT STDMETHODCALLTYPE SetRangeByFrame( 
  3485.             /* [in] */ WORD wStreamNum,
  3486.             /* [in] */ QWORD qwFrameNumber,
  3487.             /* [in] */ LONGLONG cFramesToRead) = 0;
  3488.         
  3489.         virtual HRESULT STDMETHODCALLTYPE GetNextSample( 
  3490.             /* [in] */ WORD wStreamNum,
  3491.             /* [out] */ INSSBuffer **ppSample,
  3492.             /* [out] */ QWORD *pcnsSampleTime,
  3493.             /* [out] */ QWORD *pcnsDuration,
  3494.             /* [out] */ DWORD *pdwFlags,
  3495.             /* [out] */ DWORD *pdwOutputNum,
  3496.             /* [out] */ WORD *pwStreamNum) = 0;
  3497.         
  3498.         virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected( 
  3499.             /* [in] */ WORD cStreamCount,
  3500.             /* [in] */ WORD *pwStreamNumbers,
  3501.             /* [in] */ WMT_STREAM_SELECTION *pSelections) = 0;
  3502.         
  3503.         virtual HRESULT STDMETHODCALLTYPE GetStreamSelected( 
  3504.             /* [in] */ WORD wStreamNum,
  3505.             /* [out] */ WMT_STREAM_SELECTION *pSelection) = 0;
  3506.         
  3507.         virtual HRESULT STDMETHODCALLTYPE SetReadStreamSamples( 
  3508.             /* [in] */ WORD wStreamNum,
  3509.             /* [in] */ BOOL fCompressed) = 0;
  3510.         
  3511.         virtual HRESULT STDMETHODCALLTYPE GetReadStreamSamples( 
  3512.             /* [in] */ WORD wStreamNum,
  3513.             /* [out] */ BOOL *pfCompressed) = 0;
  3514.         
  3515.         virtual HRESULT STDMETHODCALLTYPE GetOutputSetting( 
  3516.             /* [in] */ DWORD dwOutputNum,
  3517.             /* [in] */ LPCWSTR pszName,
  3518.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  3519.             /* [size_is][out] */ BYTE *pValue,
  3520.             /* [out][in] */ WORD *pcbLength) = 0;
  3521.         
  3522.         virtual HRESULT STDMETHODCALLTYPE SetOutputSetting( 
  3523.             /* [in] */ DWORD dwOutputNum,
  3524.             /* [in] */ LPCWSTR pszName,
  3525.             /* [in] */ WMT_ATTR_DATATYPE Type,
  3526.             /* [size_is][in] */ const BYTE *pValue,
  3527.             /* [in] */ WORD cbLength) = 0;
  3528.         
  3529.         virtual HRESULT STDMETHODCALLTYPE GetOutputCount( 
  3530.             /* [out] */ DWORD *pcOutputs) = 0;
  3531.         
  3532.         virtual HRESULT STDMETHODCALLTYPE GetOutputProps( 
  3533.             /* [in] */ DWORD dwOutputNum,
  3534.             /* [out] */ IWMOutputMediaProps **ppOutput) = 0;
  3535.         
  3536.         virtual HRESULT STDMETHODCALLTYPE SetOutputProps( 
  3537.             /* [in] */ DWORD dwOutputNum,
  3538.             /* [in] */ IWMOutputMediaProps *pOutput) = 0;
  3539.         
  3540.         virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount( 
  3541.             /* [in] */ DWORD dwOutputNum,
  3542.             /* [out] */ DWORD *pcFormats) = 0;
  3543.         
  3544.         virtual HRESULT STDMETHODCALLTYPE GetOutputFormat( 
  3545.             /* [in] */ DWORD dwOutputNum,
  3546.             /* [in] */ DWORD dwFormatNum,
  3547.             /* [out] */ IWMOutputMediaProps **ppProps) = 0;
  3548.         
  3549.         virtual HRESULT STDMETHODCALLTYPE GetOutputNumberForStream( 
  3550.             /* [in] */ WORD wStreamNum,
  3551.             /* [out] */ DWORD *pdwOutputNum) = 0;
  3552.         
  3553.         virtual HRESULT STDMETHODCALLTYPE GetStreamNumberForOutput( 
  3554.             /* [in] */ DWORD dwOutputNum,
  3555.             /* [out] */ WORD *pwStreamNum) = 0;
  3556.         
  3557.         virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize( 
  3558.             /* [in] */ DWORD dwOutput,
  3559.             /* [out] */ DWORD *pcbMax) = 0;
  3560.         
  3561.         virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize( 
  3562.             /* [in] */ WORD wStream,
  3563.             /* [out] */ DWORD *pcbMax) = 0;
  3564.         
  3565.         virtual HRESULT STDMETHODCALLTYPE OpenStream( 
  3566.             /* [in] */ IStream *pStream) = 0;
  3567.         
  3568.     };
  3569.     
  3570. #else     /* C style interface */
  3571.  
  3572.     typedef struct IWMSyncReaderVtbl
  3573.     {
  3574.         BEGIN_INTERFACE
  3575.         
  3576.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3577.             IWMSyncReader * This,
  3578.             /* [in] */ REFIID riid,
  3579.             /* [iid_is][out] */ void **ppvObject);
  3580.         
  3581.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3582.             IWMSyncReader * This);
  3583.         
  3584.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3585.             IWMSyncReader * This);
  3586.         
  3587.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  3588.             IWMSyncReader * This,
  3589.             /* [in] */ const WCHAR *pwszFilename);
  3590.         
  3591.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  3592.             IWMSyncReader * This);
  3593.         
  3594.         HRESULT ( STDMETHODCALLTYPE *SetRange )( 
  3595.             IWMSyncReader * This,
  3596.             /* [in] */ QWORD cnsStartTime,
  3597.             /* [in] */ LONGLONG cnsDuration);
  3598.         
  3599.         HRESULT ( STDMETHODCALLTYPE *SetRangeByFrame )( 
  3600.             IWMSyncReader * This,
  3601.             /* [in] */ WORD wStreamNum,
  3602.             /* [in] */ QWORD qwFrameNumber,
  3603.             /* [in] */ LONGLONG cFramesToRead);
  3604.         
  3605.         HRESULT ( STDMETHODCALLTYPE *GetNextSample )( 
  3606.             IWMSyncReader * This,
  3607.             /* [in] */ WORD wStreamNum,
  3608.             /* [out] */ INSSBuffer **ppSample,
  3609.             /* [out] */ QWORD *pcnsSampleTime,
  3610.             /* [out] */ QWORD *pcnsDuration,
  3611.             /* [out] */ DWORD *pdwFlags,
  3612.             /* [out] */ DWORD *pdwOutputNum,
  3613.             /* [out] */ WORD *pwStreamNum);
  3614.         
  3615.         HRESULT ( STDMETHODCALLTYPE *SetStreamsSelected )( 
  3616.             IWMSyncReader * This,
  3617.             /* [in] */ WORD cStreamCount,
  3618.             /* [in] */ WORD *pwStreamNumbers,
  3619.             /* [in] */ WMT_STREAM_SELECTION *pSelections);
  3620.         
  3621.         HRESULT ( STDMETHODCALLTYPE *GetStreamSelected )( 
  3622.             IWMSyncReader * This,
  3623.             /* [in] */ WORD wStreamNum,
  3624.             /* [out] */ WMT_STREAM_SELECTION *pSelection);
  3625.         
  3626.         HRESULT ( STDMETHODCALLTYPE *SetReadStreamSamples )( 
  3627.             IWMSyncReader * This,
  3628.             /* [in] */ WORD wStreamNum,
  3629.             /* [in] */ BOOL fCompressed);
  3630.         
  3631.         HRESULT ( STDMETHODCALLTYPE *GetReadStreamSamples )( 
  3632.             IWMSyncReader * This,
  3633.             /* [in] */ WORD wStreamNum,
  3634.             /* [out] */ BOOL *pfCompressed);
  3635.         
  3636.         HRESULT ( STDMETHODCALLTYPE *GetOutputSetting )( 
  3637.             IWMSyncReader * This,
  3638.             /* [in] */ DWORD dwOutputNum,
  3639.             /* [in] */ LPCWSTR pszName,
  3640.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  3641.             /* [size_is][out] */ BYTE *pValue,
  3642.             /* [out][in] */ WORD *pcbLength);
  3643.         
  3644.         HRESULT ( STDMETHODCALLTYPE *SetOutputSetting )( 
  3645.             IWMSyncReader * This,
  3646.             /* [in] */ DWORD dwOutputNum,
  3647.             /* [in] */ LPCWSTR pszName,
  3648.             /* [in] */ WMT_ATTR_DATATYPE Type,
  3649.             /* [size_is][in] */ const BYTE *pValue,
  3650.             /* [in] */ WORD cbLength);
  3651.         
  3652.         HRESULT ( STDMETHODCALLTYPE *GetOutputCount )( 
  3653.             IWMSyncReader * This,
  3654.             /* [out] */ DWORD *pcOutputs);
  3655.         
  3656.         HRESULT ( STDMETHODCALLTYPE *GetOutputProps )( 
  3657.             IWMSyncReader * This,
  3658.             /* [in] */ DWORD dwOutputNum,
  3659.             /* [out] */ IWMOutputMediaProps **ppOutput);
  3660.         
  3661.         HRESULT ( STDMETHODCALLTYPE *SetOutputProps )( 
  3662.             IWMSyncReader * This,
  3663.             /* [in] */ DWORD dwOutputNum,
  3664.             /* [in] */ IWMOutputMediaProps *pOutput);
  3665.         
  3666.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormatCount )( 
  3667.             IWMSyncReader * This,
  3668.             /* [in] */ DWORD dwOutputNum,
  3669.             /* [out] */ DWORD *pcFormats);
  3670.         
  3671.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormat )( 
  3672.             IWMSyncReader * This,
  3673.             /* [in] */ DWORD dwOutputNum,
  3674.             /* [in] */ DWORD dwFormatNum,
  3675.             /* [out] */ IWMOutputMediaProps **ppProps);
  3676.         
  3677.         HRESULT ( STDMETHODCALLTYPE *GetOutputNumberForStream )( 
  3678.             IWMSyncReader * This,
  3679.             /* [in] */ WORD wStreamNum,
  3680.             /* [out] */ DWORD *pdwOutputNum);
  3681.         
  3682.         HRESULT ( STDMETHODCALLTYPE *GetStreamNumberForOutput )( 
  3683.             IWMSyncReader * This,
  3684.             /* [in] */ DWORD dwOutputNum,
  3685.             /* [out] */ WORD *pwStreamNum);
  3686.         
  3687.         HRESULT ( STDMETHODCALLTYPE *GetMaxOutputSampleSize )( 
  3688.             IWMSyncReader * This,
  3689.             /* [in] */ DWORD dwOutput,
  3690.             /* [out] */ DWORD *pcbMax);
  3691.         
  3692.         HRESULT ( STDMETHODCALLTYPE *GetMaxStreamSampleSize )( 
  3693.             IWMSyncReader * This,
  3694.             /* [in] */ WORD wStream,
  3695.             /* [out] */ DWORD *pcbMax);
  3696.         
  3697.         HRESULT ( STDMETHODCALLTYPE *OpenStream )( 
  3698.             IWMSyncReader * This,
  3699.             /* [in] */ IStream *pStream);
  3700.         
  3701.         END_INTERFACE
  3702.     } IWMSyncReaderVtbl;
  3703.  
  3704.     interface IWMSyncReader
  3705.     {
  3706.         CONST_VTBL struct IWMSyncReaderVtbl *lpVtbl;
  3707.     };
  3708.  
  3709.     
  3710.  
  3711. #ifdef COBJMACROS
  3712.  
  3713.  
  3714. #define IWMSyncReader_QueryInterface(This,riid,ppvObject)    \
  3715.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3716.  
  3717. #define IWMSyncReader_AddRef(This)    \
  3718.     (This)->lpVtbl -> AddRef(This)
  3719.  
  3720. #define IWMSyncReader_Release(This)    \
  3721.     (This)->lpVtbl -> Release(This)
  3722.  
  3723.  
  3724. #define IWMSyncReader_Open(This,pwszFilename)    \
  3725.     (This)->lpVtbl -> Open(This,pwszFilename)
  3726.  
  3727. #define IWMSyncReader_Close(This)    \
  3728.     (This)->lpVtbl -> Close(This)
  3729.  
  3730. #define IWMSyncReader_SetRange(This,cnsStartTime,cnsDuration)    \
  3731.     (This)->lpVtbl -> SetRange(This,cnsStartTime,cnsDuration)
  3732.  
  3733. #define IWMSyncReader_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)    \
  3734.     (This)->lpVtbl -> SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)
  3735.  
  3736. #define IWMSyncReader_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)    \
  3737.     (This)->lpVtbl -> GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)
  3738.  
  3739. #define IWMSyncReader_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)    \
  3740.     (This)->lpVtbl -> SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  3741.  
  3742. #define IWMSyncReader_GetStreamSelected(This,wStreamNum,pSelection)    \
  3743.     (This)->lpVtbl -> GetStreamSelected(This,wStreamNum,pSelection)
  3744.  
  3745. #define IWMSyncReader_SetReadStreamSamples(This,wStreamNum,fCompressed)    \
  3746.     (This)->lpVtbl -> SetReadStreamSamples(This,wStreamNum,fCompressed)
  3747.  
  3748. #define IWMSyncReader_GetReadStreamSamples(This,wStreamNum,pfCompressed)    \
  3749.     (This)->lpVtbl -> GetReadStreamSamples(This,wStreamNum,pfCompressed)
  3750.  
  3751. #define IWMSyncReader_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)    \
  3752.     (This)->lpVtbl -> GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
  3753.  
  3754. #define IWMSyncReader_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)    \
  3755.     (This)->lpVtbl -> SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
  3756.  
  3757. #define IWMSyncReader_GetOutputCount(This,pcOutputs)    \
  3758.     (This)->lpVtbl -> GetOutputCount(This,pcOutputs)
  3759.  
  3760. #define IWMSyncReader_GetOutputProps(This,dwOutputNum,ppOutput)    \
  3761.     (This)->lpVtbl -> GetOutputProps(This,dwOutputNum,ppOutput)
  3762.  
  3763. #define IWMSyncReader_SetOutputProps(This,dwOutputNum,pOutput)    \
  3764.     (This)->lpVtbl -> SetOutputProps(This,dwOutputNum,pOutput)
  3765.  
  3766. #define IWMSyncReader_GetOutputFormatCount(This,dwOutputNum,pcFormats)    \
  3767.     (This)->lpVtbl -> GetOutputFormatCount(This,dwOutputNum,pcFormats)
  3768.  
  3769. #define IWMSyncReader_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)    \
  3770.     (This)->lpVtbl -> GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)
  3771.  
  3772. #define IWMSyncReader_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)    \
  3773.     (This)->lpVtbl -> GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)
  3774.  
  3775. #define IWMSyncReader_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)    \
  3776.     (This)->lpVtbl -> GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)
  3777.  
  3778. #define IWMSyncReader_GetMaxOutputSampleSize(This,dwOutput,pcbMax)    \
  3779.     (This)->lpVtbl -> GetMaxOutputSampleSize(This,dwOutput,pcbMax)
  3780.  
  3781. #define IWMSyncReader_GetMaxStreamSampleSize(This,wStream,pcbMax)    \
  3782.     (This)->lpVtbl -> GetMaxStreamSampleSize(This,wStream,pcbMax)
  3783.  
  3784. #define IWMSyncReader_OpenStream(This,pStream)    \
  3785.     (This)->lpVtbl -> OpenStream(This,pStream)
  3786.  
  3787. #endif /* COBJMACROS */
  3788.  
  3789.  
  3790. #endif     /* C style interface */
  3791.  
  3792.  
  3793.  
  3794. HRESULT STDMETHODCALLTYPE IWMSyncReader_Open_Proxy( 
  3795.     IWMSyncReader * This,
  3796.     /* [in] */ const WCHAR *pwszFilename);
  3797.  
  3798.  
  3799. void __RPC_STUB IWMSyncReader_Open_Stub(
  3800.     IRpcStubBuffer *This,
  3801.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3802.     PRPC_MESSAGE _pRpcMessage,
  3803.     DWORD *_pdwStubPhase);
  3804.  
  3805.  
  3806. HRESULT STDMETHODCALLTYPE IWMSyncReader_Close_Proxy( 
  3807.     IWMSyncReader * This);
  3808.  
  3809.  
  3810. void __RPC_STUB IWMSyncReader_Close_Stub(
  3811.     IRpcStubBuffer *This,
  3812.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3813.     PRPC_MESSAGE _pRpcMessage,
  3814.     DWORD *_pdwStubPhase);
  3815.  
  3816.  
  3817. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetRange_Proxy( 
  3818.     IWMSyncReader * This,
  3819.     /* [in] */ QWORD cnsStartTime,
  3820.     /* [in] */ LONGLONG cnsDuration);
  3821.  
  3822.  
  3823. void __RPC_STUB IWMSyncReader_SetRange_Stub(
  3824.     IRpcStubBuffer *This,
  3825.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3826.     PRPC_MESSAGE _pRpcMessage,
  3827.     DWORD *_pdwStubPhase);
  3828.  
  3829.  
  3830. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetRangeByFrame_Proxy( 
  3831.     IWMSyncReader * This,
  3832.     /* [in] */ WORD wStreamNum,
  3833.     /* [in] */ QWORD qwFrameNumber,
  3834.     /* [in] */ LONGLONG cFramesToRead);
  3835.  
  3836.  
  3837. void __RPC_STUB IWMSyncReader_SetRangeByFrame_Stub(
  3838.     IRpcStubBuffer *This,
  3839.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3840.     PRPC_MESSAGE _pRpcMessage,
  3841.     DWORD *_pdwStubPhase);
  3842.  
  3843.  
  3844. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetNextSample_Proxy( 
  3845.     IWMSyncReader * This,
  3846.     /* [in] */ WORD wStreamNum,
  3847.     /* [out] */ INSSBuffer **ppSample,
  3848.     /* [out] */ QWORD *pcnsSampleTime,
  3849.     /* [out] */ QWORD *pcnsDuration,
  3850.     /* [out] */ DWORD *pdwFlags,
  3851.     /* [out] */ DWORD *pdwOutputNum,
  3852.     /* [out] */ WORD *pwStreamNum);
  3853.  
  3854.  
  3855. void __RPC_STUB IWMSyncReader_GetNextSample_Stub(
  3856.     IRpcStubBuffer *This,
  3857.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3858.     PRPC_MESSAGE _pRpcMessage,
  3859.     DWORD *_pdwStubPhase);
  3860.  
  3861.  
  3862. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetStreamsSelected_Proxy( 
  3863.     IWMSyncReader * This,
  3864.     /* [in] */ WORD cStreamCount,
  3865.     /* [in] */ WORD *pwStreamNumbers,
  3866.     /* [in] */ WMT_STREAM_SELECTION *pSelections);
  3867.  
  3868.  
  3869. void __RPC_STUB IWMSyncReader_SetStreamsSelected_Stub(
  3870.     IRpcStubBuffer *This,
  3871.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3872.     PRPC_MESSAGE _pRpcMessage,
  3873.     DWORD *_pdwStubPhase);
  3874.  
  3875.  
  3876. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetStreamSelected_Proxy( 
  3877.     IWMSyncReader * This,
  3878.     /* [in] */ WORD wStreamNum,
  3879.     /* [out] */ WMT_STREAM_SELECTION *pSelection);
  3880.  
  3881.  
  3882. void __RPC_STUB IWMSyncReader_GetStreamSelected_Stub(
  3883.     IRpcStubBuffer *This,
  3884.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3885.     PRPC_MESSAGE _pRpcMessage,
  3886.     DWORD *_pdwStubPhase);
  3887.  
  3888.  
  3889. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetReadStreamSamples_Proxy( 
  3890.     IWMSyncReader * This,
  3891.     /* [in] */ WORD wStreamNum,
  3892.     /* [in] */ BOOL fCompressed);
  3893.  
  3894.  
  3895. void __RPC_STUB IWMSyncReader_SetReadStreamSamples_Stub(
  3896.     IRpcStubBuffer *This,
  3897.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3898.     PRPC_MESSAGE _pRpcMessage,
  3899.     DWORD *_pdwStubPhase);
  3900.  
  3901.  
  3902. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetReadStreamSamples_Proxy( 
  3903.     IWMSyncReader * This,
  3904.     /* [in] */ WORD wStreamNum,
  3905.     /* [out] */ BOOL *pfCompressed);
  3906.  
  3907.  
  3908. void __RPC_STUB IWMSyncReader_GetReadStreamSamples_Stub(
  3909.     IRpcStubBuffer *This,
  3910.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3911.     PRPC_MESSAGE _pRpcMessage,
  3912.     DWORD *_pdwStubPhase);
  3913.  
  3914.  
  3915. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputSetting_Proxy( 
  3916.     IWMSyncReader * This,
  3917.     /* [in] */ DWORD dwOutputNum,
  3918.     /* [in] */ LPCWSTR pszName,
  3919.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  3920.     /* [size_is][out] */ BYTE *pValue,
  3921.     /* [out][in] */ WORD *pcbLength);
  3922.  
  3923.  
  3924. void __RPC_STUB IWMSyncReader_GetOutputSetting_Stub(
  3925.     IRpcStubBuffer *This,
  3926.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3927.     PRPC_MESSAGE _pRpcMessage,
  3928.     DWORD *_pdwStubPhase);
  3929.  
  3930.  
  3931. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetOutputSetting_Proxy( 
  3932.     IWMSyncReader * This,
  3933.     /* [in] */ DWORD dwOutputNum,
  3934.     /* [in] */ LPCWSTR pszName,
  3935.     /* [in] */ WMT_ATTR_DATATYPE Type,
  3936.     /* [size_is][in] */ const BYTE *pValue,
  3937.     /* [in] */ WORD cbLength);
  3938.  
  3939.  
  3940. void __RPC_STUB IWMSyncReader_SetOutputSetting_Stub(
  3941.     IRpcStubBuffer *This,
  3942.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3943.     PRPC_MESSAGE _pRpcMessage,
  3944.     DWORD *_pdwStubPhase);
  3945.  
  3946.  
  3947. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputCount_Proxy( 
  3948.     IWMSyncReader * This,
  3949.     /* [out] */ DWORD *pcOutputs);
  3950.  
  3951.  
  3952. void __RPC_STUB IWMSyncReader_GetOutputCount_Stub(
  3953.     IRpcStubBuffer *This,
  3954.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3955.     PRPC_MESSAGE _pRpcMessage,
  3956.     DWORD *_pdwStubPhase);
  3957.  
  3958.  
  3959. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputProps_Proxy( 
  3960.     IWMSyncReader * This,
  3961.     /* [in] */ DWORD dwOutputNum,
  3962.     /* [out] */ IWMOutputMediaProps **ppOutput);
  3963.  
  3964.  
  3965. void __RPC_STUB IWMSyncReader_GetOutputProps_Stub(
  3966.     IRpcStubBuffer *This,
  3967.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3968.     PRPC_MESSAGE _pRpcMessage,
  3969.     DWORD *_pdwStubPhase);
  3970.  
  3971.  
  3972. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetOutputProps_Proxy( 
  3973.     IWMSyncReader * This,
  3974.     /* [in] */ DWORD dwOutputNum,
  3975.     /* [in] */ IWMOutputMediaProps *pOutput);
  3976.  
  3977.  
  3978. void __RPC_STUB IWMSyncReader_SetOutputProps_Stub(
  3979.     IRpcStubBuffer *This,
  3980.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3981.     PRPC_MESSAGE _pRpcMessage,
  3982.     DWORD *_pdwStubPhase);
  3983.  
  3984.  
  3985. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputFormatCount_Proxy( 
  3986.     IWMSyncReader * This,
  3987.     /* [in] */ DWORD dwOutputNum,
  3988.     /* [out] */ DWORD *pcFormats);
  3989.  
  3990.  
  3991. void __RPC_STUB IWMSyncReader_GetOutputFormatCount_Stub(
  3992.     IRpcStubBuffer *This,
  3993.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3994.     PRPC_MESSAGE _pRpcMessage,
  3995.     DWORD *_pdwStubPhase);
  3996.  
  3997.  
  3998. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputFormat_Proxy( 
  3999.     IWMSyncReader * This,
  4000.     /* [in] */ DWORD dwOutputNum,
  4001.     /* [in] */ DWORD dwFormatNum,
  4002.     /* [out] */ IWMOutputMediaProps **ppProps);
  4003.  
  4004.  
  4005. void __RPC_STUB IWMSyncReader_GetOutputFormat_Stub(
  4006.     IRpcStubBuffer *This,
  4007.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4008.     PRPC_MESSAGE _pRpcMessage,
  4009.     DWORD *_pdwStubPhase);
  4010.  
  4011.  
  4012. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputNumberForStream_Proxy( 
  4013.     IWMSyncReader * This,
  4014.     /* [in] */ WORD wStreamNum,
  4015.     /* [out] */ DWORD *pdwOutputNum);
  4016.  
  4017.  
  4018. void __RPC_STUB IWMSyncReader_GetOutputNumberForStream_Stub(
  4019.     IRpcStubBuffer *This,
  4020.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4021.     PRPC_MESSAGE _pRpcMessage,
  4022.     DWORD *_pdwStubPhase);
  4023.  
  4024.  
  4025. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetStreamNumberForOutput_Proxy( 
  4026.     IWMSyncReader * This,
  4027.     /* [in] */ DWORD dwOutputNum,
  4028.     /* [out] */ WORD *pwStreamNum);
  4029.  
  4030.  
  4031. void __RPC_STUB IWMSyncReader_GetStreamNumberForOutput_Stub(
  4032.     IRpcStubBuffer *This,
  4033.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4034.     PRPC_MESSAGE _pRpcMessage,
  4035.     DWORD *_pdwStubPhase);
  4036.  
  4037.  
  4038. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetMaxOutputSampleSize_Proxy( 
  4039.     IWMSyncReader * This,
  4040.     /* [in] */ DWORD dwOutput,
  4041.     /* [out] */ DWORD *pcbMax);
  4042.  
  4043.  
  4044. void __RPC_STUB IWMSyncReader_GetMaxOutputSampleSize_Stub(
  4045.     IRpcStubBuffer *This,
  4046.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4047.     PRPC_MESSAGE _pRpcMessage,
  4048.     DWORD *_pdwStubPhase);
  4049.  
  4050.  
  4051. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetMaxStreamSampleSize_Proxy( 
  4052.     IWMSyncReader * This,
  4053.     /* [in] */ WORD wStream,
  4054.     /* [out] */ DWORD *pcbMax);
  4055.  
  4056.  
  4057. void __RPC_STUB IWMSyncReader_GetMaxStreamSampleSize_Stub(
  4058.     IRpcStubBuffer *This,
  4059.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4060.     PRPC_MESSAGE _pRpcMessage,
  4061.     DWORD *_pdwStubPhase);
  4062.  
  4063.  
  4064. HRESULT STDMETHODCALLTYPE IWMSyncReader_OpenStream_Proxy( 
  4065.     IWMSyncReader * This,
  4066.     /* [in] */ IStream *pStream);
  4067.  
  4068.  
  4069. void __RPC_STUB IWMSyncReader_OpenStream_Stub(
  4070.     IRpcStubBuffer *This,
  4071.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4072.     PRPC_MESSAGE _pRpcMessage,
  4073.     DWORD *_pdwStubPhase);
  4074.  
  4075.  
  4076.  
  4077. #endif     /* __IWMSyncReader_INTERFACE_DEFINED__ */
  4078.  
  4079.  
  4080. #ifndef __IWMSyncReader2_INTERFACE_DEFINED__
  4081. #define __IWMSyncReader2_INTERFACE_DEFINED__
  4082.  
  4083. /* interface IWMSyncReader2 */
  4084. /* [local][unique][helpstring][uuid][object] */ 
  4085.  
  4086.  
  4087. EXTERN_C const IID IID_IWMSyncReader2;
  4088.  
  4089. #if defined(__cplusplus) && !defined(CINTERFACE)
  4090.     
  4091.     MIDL_INTERFACE("faed3d21-1b6b-4af7-8cb6-3e189bbc187b")
  4092.     IWMSyncReader2 : public IWMSyncReader
  4093.     {
  4094.     public:
  4095.         virtual HRESULT STDMETHODCALLTYPE SetRangeByTimecode( 
  4096.             /* [in] */ WORD wStreamNum,
  4097.             /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pStart,
  4098.             /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pEnd) = 0;
  4099.         
  4100.         virtual HRESULT STDMETHODCALLTYPE SetRangeByFrameEx( 
  4101.             /* [in] */ WORD wStreamNum,
  4102.             /* [in] */ QWORD qwFrameNumber,
  4103.             /* [in] */ LONGLONG cFramesToRead,
  4104.             /* [out] */ QWORD *pcnsStartTime) = 0;
  4105.         
  4106.         virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput( 
  4107.             /* [in] */ DWORD dwOutputNum,
  4108.             /* [in] */ IWMReaderAllocatorEx *pAllocator) = 0;
  4109.         
  4110.         virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput( 
  4111.             /* [in] */ DWORD dwOutputNum,
  4112.             /* [out] */ IWMReaderAllocatorEx **ppAllocator) = 0;
  4113.         
  4114.         virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream( 
  4115.             /* [in] */ WORD wStreamNum,
  4116.             /* [in] */ IWMReaderAllocatorEx *pAllocator) = 0;
  4117.         
  4118.         virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream( 
  4119.             /* [in] */ WORD dwSreamNum,
  4120.             /* [out] */ IWMReaderAllocatorEx **ppAllocator) = 0;
  4121.         
  4122.     };
  4123.     
  4124. #else     /* C style interface */
  4125.  
  4126.     typedef struct IWMSyncReader2Vtbl
  4127.     {
  4128.         BEGIN_INTERFACE
  4129.         
  4130.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4131.             IWMSyncReader2 * This,
  4132.             /* [in] */ REFIID riid,
  4133.             /* [iid_is][out] */ void **ppvObject);
  4134.         
  4135.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4136.             IWMSyncReader2 * This);
  4137.         
  4138.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4139.             IWMSyncReader2 * This);
  4140.         
  4141.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  4142.             IWMSyncReader2 * This,
  4143.             /* [in] */ const WCHAR *pwszFilename);
  4144.         
  4145.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  4146.             IWMSyncReader2 * This);
  4147.         
  4148.         HRESULT ( STDMETHODCALLTYPE *SetRange )( 
  4149.             IWMSyncReader2 * This,
  4150.             /* [in] */ QWORD cnsStartTime,
  4151.             /* [in] */ LONGLONG cnsDuration);
  4152.         
  4153.         HRESULT ( STDMETHODCALLTYPE *SetRangeByFrame )( 
  4154.             IWMSyncReader2 * This,
  4155.             /* [in] */ WORD wStreamNum,
  4156.             /* [in] */ QWORD qwFrameNumber,
  4157.             /* [in] */ LONGLONG cFramesToRead);
  4158.         
  4159.         HRESULT ( STDMETHODCALLTYPE *GetNextSample )( 
  4160.             IWMSyncReader2 * This,
  4161.             /* [in] */ WORD wStreamNum,
  4162.             /* [out] */ INSSBuffer **ppSample,
  4163.             /* [out] */ QWORD *pcnsSampleTime,
  4164.             /* [out] */ QWORD *pcnsDuration,
  4165.             /* [out] */ DWORD *pdwFlags,
  4166.             /* [out] */ DWORD *pdwOutputNum,
  4167.             /* [out] */ WORD *pwStreamNum);
  4168.         
  4169.         HRESULT ( STDMETHODCALLTYPE *SetStreamsSelected )( 
  4170.             IWMSyncReader2 * This,
  4171.             /* [in] */ WORD cStreamCount,
  4172.             /* [in] */ WORD *pwStreamNumbers,
  4173.             /* [in] */ WMT_STREAM_SELECTION *pSelections);
  4174.         
  4175.         HRESULT ( STDMETHODCALLTYPE *GetStreamSelected )( 
  4176.             IWMSyncReader2 * This,
  4177.             /* [in] */ WORD wStreamNum,
  4178.             /* [out] */ WMT_STREAM_SELECTION *pSelection);
  4179.         
  4180.         HRESULT ( STDMETHODCALLTYPE *SetReadStreamSamples )( 
  4181.             IWMSyncReader2 * This,
  4182.             /* [in] */ WORD wStreamNum,
  4183.             /* [in] */ BOOL fCompressed);
  4184.         
  4185.         HRESULT ( STDMETHODCALLTYPE *GetReadStreamSamples )( 
  4186.             IWMSyncReader2 * This,
  4187.             /* [in] */ WORD wStreamNum,
  4188.             /* [out] */ BOOL *pfCompressed);
  4189.         
  4190.         HRESULT ( STDMETHODCALLTYPE *GetOutputSetting )( 
  4191.             IWMSyncReader2 * This,
  4192.             /* [in] */ DWORD dwOutputNum,
  4193.             /* [in] */ LPCWSTR pszName,
  4194.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  4195.             /* [size_is][out] */ BYTE *pValue,
  4196.             /* [out][in] */ WORD *pcbLength);
  4197.         
  4198.         HRESULT ( STDMETHODCALLTYPE *SetOutputSetting )( 
  4199.             IWMSyncReader2 * This,
  4200.             /* [in] */ DWORD dwOutputNum,
  4201.             /* [in] */ LPCWSTR pszName,
  4202.             /* [in] */ WMT_ATTR_DATATYPE Type,
  4203.             /* [size_is][in] */ const BYTE *pValue,
  4204.             /* [in] */ WORD cbLength);
  4205.         
  4206.         HRESULT ( STDMETHODCALLTYPE *GetOutputCount )( 
  4207.             IWMSyncReader2 * This,
  4208.             /* [out] */ DWORD *pcOutputs);
  4209.         
  4210.         HRESULT ( STDMETHODCALLTYPE *GetOutputProps )( 
  4211.             IWMSyncReader2 * This,
  4212.             /* [in] */ DWORD dwOutputNum,
  4213.             /* [out] */ IWMOutputMediaProps **ppOutput);
  4214.         
  4215.         HRESULT ( STDMETHODCALLTYPE *SetOutputProps )( 
  4216.             IWMSyncReader2 * This,
  4217.             /* [in] */ DWORD dwOutputNum,
  4218.             /* [in] */ IWMOutputMediaProps *pOutput);
  4219.         
  4220.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormatCount )( 
  4221.             IWMSyncReader2 * This,
  4222.             /* [in] */ DWORD dwOutputNum,
  4223.             /* [out] */ DWORD *pcFormats);
  4224.         
  4225.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormat )( 
  4226.             IWMSyncReader2 * This,
  4227.             /* [in] */ DWORD dwOutputNum,
  4228.             /* [in] */ DWORD dwFormatNum,
  4229.             /* [out] */ IWMOutputMediaProps **ppProps);
  4230.         
  4231.         HRESULT ( STDMETHODCALLTYPE *GetOutputNumberForStream )( 
  4232.             IWMSyncReader2 * This,
  4233.             /* [in] */ WORD wStreamNum,
  4234.             /* [out] */ DWORD *pdwOutputNum);
  4235.         
  4236.         HRESULT ( STDMETHODCALLTYPE *GetStreamNumberForOutput )( 
  4237.             IWMSyncReader2 * This,
  4238.             /* [in] */ DWORD dwOutputNum,
  4239.             /* [out] */ WORD *pwStreamNum);
  4240.         
  4241.         HRESULT ( STDMETHODCALLTYPE *GetMaxOutputSampleSize )( 
  4242.             IWMSyncReader2 * This,
  4243.             /* [in] */ DWORD dwOutput,
  4244.             /* [out] */ DWORD *pcbMax);
  4245.         
  4246.         HRESULT ( STDMETHODCALLTYPE *GetMaxStreamSampleSize )( 
  4247.             IWMSyncReader2 * This,
  4248.             /* [in] */ WORD wStream,
  4249.             /* [out] */ DWORD *pcbMax);
  4250.         
  4251.         HRESULT ( STDMETHODCALLTYPE *OpenStream )( 
  4252.             IWMSyncReader2 * This,
  4253.             /* [in] */ IStream *pStream);
  4254.         
  4255.         HRESULT ( STDMETHODCALLTYPE *SetRangeByTimecode )( 
  4256.             IWMSyncReader2 * This,
  4257.             /* [in] */ WORD wStreamNum,
  4258.             /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pStart,
  4259.             /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pEnd);
  4260.         
  4261.         HRESULT ( STDMETHODCALLTYPE *SetRangeByFrameEx )( 
  4262.             IWMSyncReader2 * This,
  4263.             /* [in] */ WORD wStreamNum,
  4264.             /* [in] */ QWORD qwFrameNumber,
  4265.             /* [in] */ LONGLONG cFramesToRead,
  4266.             /* [out] */ QWORD *pcnsStartTime);
  4267.         
  4268.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForOutput )( 
  4269.             IWMSyncReader2 * This,
  4270.             /* [in] */ DWORD dwOutputNum,
  4271.             /* [in] */ IWMReaderAllocatorEx *pAllocator);
  4272.         
  4273.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForOutput )( 
  4274.             IWMSyncReader2 * This,
  4275.             /* [in] */ DWORD dwOutputNum,
  4276.             /* [out] */ IWMReaderAllocatorEx **ppAllocator);
  4277.         
  4278.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForStream )( 
  4279.             IWMSyncReader2 * This,
  4280.             /* [in] */ WORD wStreamNum,
  4281.             /* [in] */ IWMReaderAllocatorEx *pAllocator);
  4282.         
  4283.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForStream )( 
  4284.             IWMSyncReader2 * This,
  4285.             /* [in] */ WORD dwSreamNum,
  4286.             /* [out] */ IWMReaderAllocatorEx **ppAllocator);
  4287.         
  4288.         END_INTERFACE
  4289.     } IWMSyncReader2Vtbl;
  4290.  
  4291.     interface IWMSyncReader2
  4292.     {
  4293.         CONST_VTBL struct IWMSyncReader2Vtbl *lpVtbl;
  4294.     };
  4295.  
  4296.     
  4297.  
  4298. #ifdef COBJMACROS
  4299.  
  4300.  
  4301. #define IWMSyncReader2_QueryInterface(This,riid,ppvObject)    \
  4302.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4303.  
  4304. #define IWMSyncReader2_AddRef(This)    \
  4305.     (This)->lpVtbl -> AddRef(This)
  4306.  
  4307. #define IWMSyncReader2_Release(This)    \
  4308.     (This)->lpVtbl -> Release(This)
  4309.  
  4310.  
  4311. #define IWMSyncReader2_Open(This,pwszFilename)    \
  4312.     (This)->lpVtbl -> Open(This,pwszFilename)
  4313.  
  4314. #define IWMSyncReader2_Close(This)    \
  4315.     (This)->lpVtbl -> Close(This)
  4316.  
  4317. #define IWMSyncReader2_SetRange(This,cnsStartTime,cnsDuration)    \
  4318.     (This)->lpVtbl -> SetRange(This,cnsStartTime,cnsDuration)
  4319.  
  4320. #define IWMSyncReader2_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)    \
  4321.     (This)->lpVtbl -> SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)
  4322.  
  4323. #define IWMSyncReader2_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)    \
  4324.     (This)->lpVtbl -> GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)
  4325.  
  4326. #define IWMSyncReader2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)    \
  4327.     (This)->lpVtbl -> SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  4328.  
  4329. #define IWMSyncReader2_GetStreamSelected(This,wStreamNum,pSelection)    \
  4330.     (This)->lpVtbl -> GetStreamSelected(This,wStreamNum,pSelection)
  4331.  
  4332. #define IWMSyncReader2_SetReadStreamSamples(This,wStreamNum,fCompressed)    \
  4333.     (This)->lpVtbl -> SetReadStreamSamples(This,wStreamNum,fCompressed)
  4334.  
  4335. #define IWMSyncReader2_GetReadStreamSamples(This,wStreamNum,pfCompressed)    \
  4336.     (This)->lpVtbl -> GetReadStreamSamples(This,wStreamNum,pfCompressed)
  4337.  
  4338. #define IWMSyncReader2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)    \
  4339.     (This)->lpVtbl -> GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
  4340.  
  4341. #define IWMSyncReader2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)    \
  4342.     (This)->lpVtbl -> SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
  4343.  
  4344. #define IWMSyncReader2_GetOutputCount(This,pcOutputs)    \
  4345.     (This)->lpVtbl -> GetOutputCount(This,pcOutputs)
  4346.  
  4347. #define IWMSyncReader2_GetOutputProps(This,dwOutputNum,ppOutput)    \
  4348.     (This)->lpVtbl -> GetOutputProps(This,dwOutputNum,ppOutput)
  4349.  
  4350. #define IWMSyncReader2_SetOutputProps(This,dwOutputNum,pOutput)    \
  4351.     (This)->lpVtbl -> SetOutputProps(This,dwOutputNum,pOutput)
  4352.  
  4353. #define IWMSyncReader2_GetOutputFormatCount(This,dwOutputNum,pcFormats)    \
  4354.     (This)->lpVtbl -> GetOutputFormatCount(This,dwOutputNum,pcFormats)
  4355.  
  4356. #define IWMSyncReader2_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)    \
  4357.     (This)->lpVtbl -> GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)
  4358.  
  4359. #define IWMSyncReader2_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)    \
  4360.     (This)->lpVtbl -> GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)
  4361.  
  4362. #define IWMSyncReader2_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)    \
  4363.     (This)->lpVtbl -> GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)
  4364.  
  4365. #define IWMSyncReader2_GetMaxOutputSampleSize(This,dwOutput,pcbMax)    \
  4366.     (This)->lpVtbl -> GetMaxOutputSampleSize(This,dwOutput,pcbMax)
  4367.  
  4368. #define IWMSyncReader2_GetMaxStreamSampleSize(This,wStream,pcbMax)    \
  4369.     (This)->lpVtbl -> GetMaxStreamSampleSize(This,wStream,pcbMax)
  4370.  
  4371. #define IWMSyncReader2_OpenStream(This,pStream)    \
  4372.     (This)->lpVtbl -> OpenStream(This,pStream)
  4373.  
  4374.  
  4375. #define IWMSyncReader2_SetRangeByTimecode(This,wStreamNum,pStart,pEnd)    \
  4376.     (This)->lpVtbl -> SetRangeByTimecode(This,wStreamNum,pStart,pEnd)
  4377.  
  4378. #define IWMSyncReader2_SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime)    \
  4379.     (This)->lpVtbl -> SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime)
  4380.  
  4381. #define IWMSyncReader2_SetAllocateForOutput(This,dwOutputNum,pAllocator)    \
  4382.     (This)->lpVtbl -> SetAllocateForOutput(This,dwOutputNum,pAllocator)
  4383.  
  4384. #define IWMSyncReader2_GetAllocateForOutput(This,dwOutputNum,ppAllocator)    \
  4385.     (This)->lpVtbl -> GetAllocateForOutput(This,dwOutputNum,ppAllocator)
  4386.  
  4387. #define IWMSyncReader2_SetAllocateForStream(This,wStreamNum,pAllocator)    \
  4388.     (This)->lpVtbl -> SetAllocateForStream(This,wStreamNum,pAllocator)
  4389.  
  4390. #define IWMSyncReader2_GetAllocateForStream(This,dwSreamNum,ppAllocator)    \
  4391.     (This)->lpVtbl -> GetAllocateForStream(This,dwSreamNum,ppAllocator)
  4392.  
  4393. #endif /* COBJMACROS */
  4394.  
  4395.  
  4396. #endif     /* C style interface */
  4397.  
  4398.  
  4399.  
  4400. HRESULT STDMETHODCALLTYPE IWMSyncReader2_SetRangeByTimecode_Proxy( 
  4401.     IWMSyncReader2 * This,
  4402.     /* [in] */ WORD wStreamNum,
  4403.     /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pStart,
  4404.     /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pEnd);
  4405.  
  4406.  
  4407. void __RPC_STUB IWMSyncReader2_SetRangeByTimecode_Stub(
  4408.     IRpcStubBuffer *This,
  4409.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4410.     PRPC_MESSAGE _pRpcMessage,
  4411.     DWORD *_pdwStubPhase);
  4412.  
  4413.  
  4414. HRESULT STDMETHODCALLTYPE IWMSyncReader2_SetRangeByFrameEx_Proxy( 
  4415.     IWMSyncReader2 * This,
  4416.     /* [in] */ WORD wStreamNum,
  4417.     /* [in] */ QWORD qwFrameNumber,
  4418.     /* [in] */ LONGLONG cFramesToRead,
  4419.     /* [out] */ QWORD *pcnsStartTime);
  4420.  
  4421.  
  4422. void __RPC_STUB IWMSyncReader2_SetRangeByFrameEx_Stub(
  4423.     IRpcStubBuffer *This,
  4424.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4425.     PRPC_MESSAGE _pRpcMessage,
  4426.     DWORD *_pdwStubPhase);
  4427.  
  4428.  
  4429. HRESULT STDMETHODCALLTYPE IWMSyncReader2_SetAllocateForOutput_Proxy( 
  4430.     IWMSyncReader2 * This,
  4431.     /* [in] */ DWORD dwOutputNum,
  4432.     /* [in] */ IWMReaderAllocatorEx *pAllocator);
  4433.  
  4434.  
  4435. void __RPC_STUB IWMSyncReader2_SetAllocateForOutput_Stub(
  4436.     IRpcStubBuffer *This,
  4437.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4438.     PRPC_MESSAGE _pRpcMessage,
  4439.     DWORD *_pdwStubPhase);
  4440.  
  4441.  
  4442. HRESULT STDMETHODCALLTYPE IWMSyncReader2_GetAllocateForOutput_Proxy( 
  4443.     IWMSyncReader2 * This,
  4444.     /* [in] */ DWORD dwOutputNum,
  4445.     /* [out] */ IWMReaderAllocatorEx **ppAllocator);
  4446.  
  4447.  
  4448. void __RPC_STUB IWMSyncReader2_GetAllocateForOutput_Stub(
  4449.     IRpcStubBuffer *This,
  4450.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4451.     PRPC_MESSAGE _pRpcMessage,
  4452.     DWORD *_pdwStubPhase);
  4453.  
  4454.  
  4455. HRESULT STDMETHODCALLTYPE IWMSyncReader2_SetAllocateForStream_Proxy( 
  4456.     IWMSyncReader2 * This,
  4457.     /* [in] */ WORD wStreamNum,
  4458.     /* [in] */ IWMReaderAllocatorEx *pAllocator);
  4459.  
  4460.  
  4461. void __RPC_STUB IWMSyncReader2_SetAllocateForStream_Stub(
  4462.     IRpcStubBuffer *This,
  4463.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4464.     PRPC_MESSAGE _pRpcMessage,
  4465.     DWORD *_pdwStubPhase);
  4466.  
  4467.  
  4468. HRESULT STDMETHODCALLTYPE IWMSyncReader2_GetAllocateForStream_Proxy( 
  4469.     IWMSyncReader2 * This,
  4470.     /* [in] */ WORD dwSreamNum,
  4471.     /* [out] */ IWMReaderAllocatorEx **ppAllocator);
  4472.  
  4473.  
  4474. void __RPC_STUB IWMSyncReader2_GetAllocateForStream_Stub(
  4475.     IRpcStubBuffer *This,
  4476.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4477.     PRPC_MESSAGE _pRpcMessage,
  4478.     DWORD *_pdwStubPhase);
  4479.  
  4480.  
  4481.  
  4482. #endif     /* __IWMSyncReader2_INTERFACE_DEFINED__ */
  4483.  
  4484.  
  4485. #ifndef __IWMOutputMediaProps_INTERFACE_DEFINED__
  4486. #define __IWMOutputMediaProps_INTERFACE_DEFINED__
  4487.  
  4488. /* interface IWMOutputMediaProps */
  4489. /* [local][unique][helpstring][uuid][object] */ 
  4490.  
  4491.  
  4492. EXTERN_C const IID IID_IWMOutputMediaProps;
  4493.  
  4494. #if defined(__cplusplus) && !defined(CINTERFACE)
  4495.     
  4496.     MIDL_INTERFACE("96406BD7-2B2B-11d3-B36B-00C04F6108FF")
  4497.     IWMOutputMediaProps : public IWMMediaProps
  4498.     {
  4499.     public:
  4500.         virtual HRESULT STDMETHODCALLTYPE GetStreamGroupName( 
  4501.             /* [size_is][out] */ WCHAR *pwszName,
  4502.             /* [out][in] */ WORD *pcchName) = 0;
  4503.         
  4504.         virtual HRESULT STDMETHODCALLTYPE GetConnectionName( 
  4505.             /* [size_is][out] */ WCHAR *pwszName,
  4506.             /* [out][in] */ WORD *pcchName) = 0;
  4507.         
  4508.     };
  4509.     
  4510. #else     /* C style interface */
  4511.  
  4512.     typedef struct IWMOutputMediaPropsVtbl
  4513.     {
  4514.         BEGIN_INTERFACE
  4515.         
  4516.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4517.             IWMOutputMediaProps * This,
  4518.             /* [in] */ REFIID riid,
  4519.             /* [iid_is][out] */ void **ppvObject);
  4520.         
  4521.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4522.             IWMOutputMediaProps * This);
  4523.         
  4524.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4525.             IWMOutputMediaProps * This);
  4526.         
  4527.         HRESULT ( STDMETHODCALLTYPE *GetType )( 
  4528.             IWMOutputMediaProps * This,
  4529.             /* [out] */ GUID *pguidType);
  4530.         
  4531.         HRESULT ( STDMETHODCALLTYPE *GetMediaType )( 
  4532.             IWMOutputMediaProps * This,
  4533.             /* [out] */ WM_MEDIA_TYPE *pType,
  4534.             /* [out][in] */ DWORD *pcbType);
  4535.         
  4536.         HRESULT ( STDMETHODCALLTYPE *SetMediaType )( 
  4537.             IWMOutputMediaProps * This,
  4538.             /* [in] */ WM_MEDIA_TYPE *pType);
  4539.         
  4540.         HRESULT ( STDMETHODCALLTYPE *GetStreamGroupName )( 
  4541.             IWMOutputMediaProps * This,
  4542.             /* [size_is][out] */ WCHAR *pwszName,
  4543.             /* [out][in] */ WORD *pcchName);
  4544.         
  4545.         HRESULT ( STDMETHODCALLTYPE *GetConnectionName )( 
  4546.             IWMOutputMediaProps * This,
  4547.             /* [size_is][out] */ WCHAR *pwszName,
  4548.             /* [out][in] */ WORD *pcchName);
  4549.         
  4550.         END_INTERFACE
  4551.     } IWMOutputMediaPropsVtbl;
  4552.  
  4553.     interface IWMOutputMediaProps
  4554.     {
  4555.         CONST_VTBL struct IWMOutputMediaPropsVtbl *lpVtbl;
  4556.     };
  4557.  
  4558.     
  4559.  
  4560. #ifdef COBJMACROS
  4561.  
  4562.  
  4563. #define IWMOutputMediaProps_QueryInterface(This,riid,ppvObject)    \
  4564.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4565.  
  4566. #define IWMOutputMediaProps_AddRef(This)    \
  4567.     (This)->lpVtbl -> AddRef(This)
  4568.  
  4569. #define IWMOutputMediaProps_Release(This)    \
  4570.     (This)->lpVtbl -> Release(This)
  4571.  
  4572.  
  4573. #define IWMOutputMediaProps_GetType(This,pguidType)    \
  4574.     (This)->lpVtbl -> GetType(This,pguidType)
  4575.  
  4576. #define IWMOutputMediaProps_GetMediaType(This,pType,pcbType)    \
  4577.     (This)->lpVtbl -> GetMediaType(This,pType,pcbType)
  4578.  
  4579. #define IWMOutputMediaProps_SetMediaType(This,pType)    \
  4580.     (This)->lpVtbl -> SetMediaType(This,pType)
  4581.  
  4582.  
  4583. #define IWMOutputMediaProps_GetStreamGroupName(This,pwszName,pcchName)    \
  4584.     (This)->lpVtbl -> GetStreamGroupName(This,pwszName,pcchName)
  4585.  
  4586. #define IWMOutputMediaProps_GetConnectionName(This,pwszName,pcchName)    \
  4587.     (This)->lpVtbl -> GetConnectionName(This,pwszName,pcchName)
  4588.  
  4589. #endif /* COBJMACROS */
  4590.  
  4591.  
  4592. #endif     /* C style interface */
  4593.  
  4594.  
  4595.  
  4596. HRESULT STDMETHODCALLTYPE IWMOutputMediaProps_GetStreamGroupName_Proxy( 
  4597.     IWMOutputMediaProps * This,
  4598.     /* [size_is][out] */ WCHAR *pwszName,
  4599.     /* [out][in] */ WORD *pcchName);
  4600.  
  4601.  
  4602. void __RPC_STUB IWMOutputMediaProps_GetStreamGroupName_Stub(
  4603.     IRpcStubBuffer *This,
  4604.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4605.     PRPC_MESSAGE _pRpcMessage,
  4606.     DWORD *_pdwStubPhase);
  4607.  
  4608.  
  4609. HRESULT STDMETHODCALLTYPE IWMOutputMediaProps_GetConnectionName_Proxy( 
  4610.     IWMOutputMediaProps * This,
  4611.     /* [size_is][out] */ WCHAR *pwszName,
  4612.     /* [out][in] */ WORD *pcchName);
  4613.  
  4614.  
  4615. void __RPC_STUB IWMOutputMediaProps_GetConnectionName_Stub(
  4616.     IRpcStubBuffer *This,
  4617.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4618.     PRPC_MESSAGE _pRpcMessage,
  4619.     DWORD *_pdwStubPhase);
  4620.  
  4621.  
  4622.  
  4623. #endif     /* __IWMOutputMediaProps_INTERFACE_DEFINED__ */
  4624.  
  4625.  
  4626. #ifndef __IWMStatusCallback_INTERFACE_DEFINED__
  4627. #define __IWMStatusCallback_INTERFACE_DEFINED__
  4628.  
  4629. /* interface IWMStatusCallback */
  4630. /* [local][unique][helpstring][uuid][object] */ 
  4631.  
  4632.  
  4633. EXTERN_C const IID IID_IWMStatusCallback;
  4634.  
  4635. #if defined(__cplusplus) && !defined(CINTERFACE)
  4636.     
  4637.     MIDL_INTERFACE("6d7cdc70-9888-11d3-8edc-00c04f6109cf")
  4638.     IWMStatusCallback : public IUnknown
  4639.     {
  4640.     public:
  4641.         virtual HRESULT STDMETHODCALLTYPE OnStatus( 
  4642.             /* [in] */ WMT_STATUS Status,
  4643.             /* [in] */ HRESULT hr,
  4644.             /* [in] */ WMT_ATTR_DATATYPE dwType,
  4645.             /* [in] */ BYTE *pValue,
  4646.             /* [in] */ void *pvContext) = 0;
  4647.         
  4648.     };
  4649.     
  4650. #else     /* C style interface */
  4651.  
  4652.     typedef struct IWMStatusCallbackVtbl
  4653.     {
  4654.         BEGIN_INTERFACE
  4655.         
  4656.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4657.             IWMStatusCallback * This,
  4658.             /* [in] */ REFIID riid,
  4659.             /* [iid_is][out] */ void **ppvObject);
  4660.         
  4661.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4662.             IWMStatusCallback * This);
  4663.         
  4664.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4665.             IWMStatusCallback * This);
  4666.         
  4667.         HRESULT ( STDMETHODCALLTYPE *OnStatus )( 
  4668.             IWMStatusCallback * This,
  4669.             /* [in] */ WMT_STATUS Status,
  4670.             /* [in] */ HRESULT hr,
  4671.             /* [in] */ WMT_ATTR_DATATYPE dwType,
  4672.             /* [in] */ BYTE *pValue,
  4673.             /* [in] */ void *pvContext);
  4674.         
  4675.         END_INTERFACE
  4676.     } IWMStatusCallbackVtbl;
  4677.  
  4678.     interface IWMStatusCallback
  4679.     {
  4680.         CONST_VTBL struct IWMStatusCallbackVtbl *lpVtbl;
  4681.     };
  4682.  
  4683.     
  4684.  
  4685. #ifdef COBJMACROS
  4686.  
  4687.  
  4688. #define IWMStatusCallback_QueryInterface(This,riid,ppvObject)    \
  4689.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4690.  
  4691. #define IWMStatusCallback_AddRef(This)    \
  4692.     (This)->lpVtbl -> AddRef(This)
  4693.  
  4694. #define IWMStatusCallback_Release(This)    \
  4695.     (This)->lpVtbl -> Release(This)
  4696.  
  4697.  
  4698. #define IWMStatusCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext)    \
  4699.     (This)->lpVtbl -> OnStatus(This,Status,hr,dwType,pValue,pvContext)
  4700.  
  4701. #endif /* COBJMACROS */
  4702.  
  4703.  
  4704. #endif     /* C style interface */
  4705.  
  4706.  
  4707.  
  4708. HRESULT STDMETHODCALLTYPE IWMStatusCallback_OnStatus_Proxy( 
  4709.     IWMStatusCallback * This,
  4710.     /* [in] */ WMT_STATUS Status,
  4711.     /* [in] */ HRESULT hr,
  4712.     /* [in] */ WMT_ATTR_DATATYPE dwType,
  4713.     /* [in] */ BYTE *pValue,
  4714.     /* [in] */ void *pvContext);
  4715.  
  4716.  
  4717. void __RPC_STUB IWMStatusCallback_OnStatus_Stub(
  4718.     IRpcStubBuffer *This,
  4719.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4720.     PRPC_MESSAGE _pRpcMessage,
  4721.     DWORD *_pdwStubPhase);
  4722.  
  4723.  
  4724.  
  4725. #endif     /* __IWMStatusCallback_INTERFACE_DEFINED__ */
  4726.  
  4727.  
  4728. #ifndef __IWMReaderCallback_INTERFACE_DEFINED__
  4729. #define __IWMReaderCallback_INTERFACE_DEFINED__
  4730.  
  4731. /* interface IWMReaderCallback */
  4732. /* [local][unique][helpstring][uuid][object] */ 
  4733.  
  4734.  
  4735. EXTERN_C const IID IID_IWMReaderCallback;
  4736.  
  4737. #if defined(__cplusplus) && !defined(CINTERFACE)
  4738.     
  4739.     MIDL_INTERFACE("96406BD8-2B2B-11d3-B36B-00C04F6108FF")
  4740.     IWMReaderCallback : public IWMStatusCallback
  4741.     {
  4742.     public:
  4743.         virtual HRESULT STDMETHODCALLTYPE OnSample( 
  4744.             /* [in] */ DWORD dwOutputNum,
  4745.             /* [in] */ QWORD cnsSampleTime,
  4746.             /* [in] */ QWORD cnsSampleDuration,
  4747.             /* [in] */ DWORD dwFlags,
  4748.             /* [in] */ INSSBuffer *pSample,
  4749.             /* [in] */ void *pvContext) = 0;
  4750.         
  4751.     };
  4752.     
  4753. #else     /* C style interface */
  4754.  
  4755.     typedef struct IWMReaderCallbackVtbl
  4756.     {
  4757.         BEGIN_INTERFACE
  4758.         
  4759.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4760.             IWMReaderCallback * This,
  4761.             /* [in] */ REFIID riid,
  4762.             /* [iid_is][out] */ void **ppvObject);
  4763.         
  4764.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4765.             IWMReaderCallback * This);
  4766.         
  4767.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4768.             IWMReaderCallback * This);
  4769.         
  4770.         HRESULT ( STDMETHODCALLTYPE *OnStatus )( 
  4771.             IWMReaderCallback * This,
  4772.             /* [in] */ WMT_STATUS Status,
  4773.             /* [in] */ HRESULT hr,
  4774.             /* [in] */ WMT_ATTR_DATATYPE dwType,
  4775.             /* [in] */ BYTE *pValue,
  4776.             /* [in] */ void *pvContext);
  4777.         
  4778.         HRESULT ( STDMETHODCALLTYPE *OnSample )( 
  4779.             IWMReaderCallback * This,
  4780.             /* [in] */ DWORD dwOutputNum,
  4781.             /* [in] */ QWORD cnsSampleTime,
  4782.             /* [in] */ QWORD cnsSampleDuration,
  4783.             /* [in] */ DWORD dwFlags,
  4784.             /* [in] */ INSSBuffer *pSample,
  4785.             /* [in] */ void *pvContext);
  4786.         
  4787.         END_INTERFACE
  4788.     } IWMReaderCallbackVtbl;
  4789.  
  4790.     interface IWMReaderCallback
  4791.     {
  4792.         CONST_VTBL struct IWMReaderCallbackVtbl *lpVtbl;
  4793.     };
  4794.  
  4795.     
  4796.  
  4797. #ifdef COBJMACROS
  4798.  
  4799.  
  4800. #define IWMReaderCallback_QueryInterface(This,riid,ppvObject)    \
  4801.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4802.  
  4803. #define IWMReaderCallback_AddRef(This)    \
  4804.     (This)->lpVtbl -> AddRef(This)
  4805.  
  4806. #define IWMReaderCallback_Release(This)    \
  4807.     (This)->lpVtbl -> Release(This)
  4808.  
  4809.  
  4810. #define IWMReaderCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext)    \
  4811.     (This)->lpVtbl -> OnStatus(This,Status,hr,dwType,pValue,pvContext)
  4812.  
  4813.  
  4814. #define IWMReaderCallback_OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)    \
  4815.     (This)->lpVtbl -> OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)
  4816.  
  4817. #endif /* COBJMACROS */
  4818.  
  4819.  
  4820. #endif     /* C style interface */
  4821.  
  4822.  
  4823.  
  4824. HRESULT STDMETHODCALLTYPE IWMReaderCallback_OnSample_Proxy( 
  4825.     IWMReaderCallback * This,
  4826.     /* [in] */ DWORD dwOutputNum,
  4827.     /* [in] */ QWORD cnsSampleTime,
  4828.     /* [in] */ QWORD cnsSampleDuration,
  4829.     /* [in] */ DWORD dwFlags,
  4830.     /* [in] */ INSSBuffer *pSample,
  4831.     /* [in] */ void *pvContext);
  4832.  
  4833.  
  4834. void __RPC_STUB IWMReaderCallback_OnSample_Stub(
  4835.     IRpcStubBuffer *This,
  4836.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4837.     PRPC_MESSAGE _pRpcMessage,
  4838.     DWORD *_pdwStubPhase);
  4839.  
  4840.  
  4841.  
  4842. #endif     /* __IWMReaderCallback_INTERFACE_DEFINED__ */
  4843.  
  4844.  
  4845. #ifndef __IWMCredentialCallback_INTERFACE_DEFINED__
  4846. #define __IWMCredentialCallback_INTERFACE_DEFINED__
  4847.  
  4848. /* interface IWMCredentialCallback */
  4849. /* [local][unique][helpstring][uuid][object] */ 
  4850.  
  4851.  
  4852. EXTERN_C const IID IID_IWMCredentialCallback;
  4853.  
  4854. #if defined(__cplusplus) && !defined(CINTERFACE)
  4855.     
  4856.     MIDL_INTERFACE("342e0eb7-e651-450c-975b-2ace2c90c48e")
  4857.     IWMCredentialCallback : public IUnknown
  4858.     {
  4859.     public:
  4860.         virtual HRESULT STDMETHODCALLTYPE AcquireCredentials( 
  4861.             /* [in] */ WCHAR *pwszRealm,
  4862.             /* [in] */ WCHAR *pwszSite,
  4863.             /* [size_is][out] */ WCHAR *pwszUser,
  4864.             /* [in] */ DWORD cchUser,
  4865.             /* [size_is][out] */ WCHAR *pwszPassword,
  4866.             /* [in] */ DWORD cchPassword,
  4867.             /* [in] */ HRESULT hrStatus,
  4868.             /* [out] */ DWORD *pdwFlags) = 0;
  4869.         
  4870.     };
  4871.     
  4872. #else     /* C style interface */
  4873.  
  4874.     typedef struct IWMCredentialCallbackVtbl
  4875.     {
  4876.         BEGIN_INTERFACE
  4877.         
  4878.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4879.             IWMCredentialCallback * This,
  4880.             /* [in] */ REFIID riid,
  4881.             /* [iid_is][out] */ void **ppvObject);
  4882.         
  4883.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4884.             IWMCredentialCallback * This);
  4885.         
  4886.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4887.             IWMCredentialCallback * This);
  4888.         
  4889.         HRESULT ( STDMETHODCALLTYPE *AcquireCredentials )( 
  4890.             IWMCredentialCallback * This,
  4891.             /* [in] */ WCHAR *pwszRealm,
  4892.             /* [in] */ WCHAR *pwszSite,
  4893.             /* [size_is][out] */ WCHAR *pwszUser,
  4894.             /* [in] */ DWORD cchUser,
  4895.             /* [size_is][out] */ WCHAR *pwszPassword,
  4896.             /* [in] */ DWORD cchPassword,
  4897.             /* [in] */ HRESULT hrStatus,
  4898.             /* [out] */ DWORD *pdwFlags);
  4899.         
  4900.         END_INTERFACE
  4901.     } IWMCredentialCallbackVtbl;
  4902.  
  4903.     interface IWMCredentialCallback
  4904.     {
  4905.         CONST_VTBL struct IWMCredentialCallbackVtbl *lpVtbl;
  4906.     };
  4907.  
  4908.     
  4909.  
  4910. #ifdef COBJMACROS
  4911.  
  4912.  
  4913. #define IWMCredentialCallback_QueryInterface(This,riid,ppvObject)    \
  4914.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4915.  
  4916. #define IWMCredentialCallback_AddRef(This)    \
  4917.     (This)->lpVtbl -> AddRef(This)
  4918.  
  4919. #define IWMCredentialCallback_Release(This)    \
  4920.     (This)->lpVtbl -> Release(This)
  4921.  
  4922.  
  4923. #define IWMCredentialCallback_AcquireCredentials(This,pwszRealm,pwszSite,pwszUser,cchUser,pwszPassword,cchPassword,hrStatus,pdwFlags)    \
  4924.     (This)->lpVtbl -> AcquireCredentials(This,pwszRealm,pwszSite,pwszUser,cchUser,pwszPassword,cchPassword,hrStatus,pdwFlags)
  4925.  
  4926. #endif /* COBJMACROS */
  4927.  
  4928.  
  4929. #endif     /* C style interface */
  4930.  
  4931.  
  4932.  
  4933. HRESULT STDMETHODCALLTYPE IWMCredentialCallback_AcquireCredentials_Proxy( 
  4934.     IWMCredentialCallback * This,
  4935.     /* [in] */ WCHAR *pwszRealm,
  4936.     /* [in] */ WCHAR *pwszSite,
  4937.     /* [size_is][out] */ WCHAR *pwszUser,
  4938.     /* [in] */ DWORD cchUser,
  4939.     /* [size_is][out] */ WCHAR *pwszPassword,
  4940.     /* [in] */ DWORD cchPassword,
  4941.     /* [in] */ HRESULT hrStatus,
  4942.     /* [out] */ DWORD *pdwFlags);
  4943.  
  4944.  
  4945. void __RPC_STUB IWMCredentialCallback_AcquireCredentials_Stub(
  4946.     IRpcStubBuffer *This,
  4947.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4948.     PRPC_MESSAGE _pRpcMessage,
  4949.     DWORD *_pdwStubPhase);
  4950.  
  4951.  
  4952.  
  4953. #endif     /* __IWMCredentialCallback_INTERFACE_DEFINED__ */
  4954.  
  4955.  
  4956. #ifndef __IWMMetadataEditor_INTERFACE_DEFINED__
  4957. #define __IWMMetadataEditor_INTERFACE_DEFINED__
  4958.  
  4959. /* interface IWMMetadataEditor */
  4960. /* [local][unique][helpstring][uuid][object] */ 
  4961.  
  4962.  
  4963. EXTERN_C const IID IID_IWMMetadataEditor;
  4964.  
  4965. #if defined(__cplusplus) && !defined(CINTERFACE)
  4966.     
  4967.     MIDL_INTERFACE("96406BD9-2B2B-11d3-B36B-00C04F6108FF")
  4968.     IWMMetadataEditor : public IUnknown
  4969.     {
  4970.     public:
  4971.         virtual HRESULT STDMETHODCALLTYPE Open( 
  4972.             /* [in] */ const WCHAR *pwszFilename) = 0;
  4973.         
  4974.         virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  4975.         
  4976.         virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0;
  4977.         
  4978.     };
  4979.     
  4980. #else     /* C style interface */
  4981.  
  4982.     typedef struct IWMMetadataEditorVtbl
  4983.     {
  4984.         BEGIN_INTERFACE
  4985.         
  4986.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4987.             IWMMetadataEditor * This,
  4988.             /* [in] */ REFIID riid,
  4989.             /* [iid_is][out] */ void **ppvObject);
  4990.         
  4991.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4992.             IWMMetadataEditor * This);
  4993.         
  4994.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4995.             IWMMetadataEditor * This);
  4996.         
  4997.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  4998.             IWMMetadataEditor * This,
  4999.             /* [in] */ const WCHAR *pwszFilename);
  5000.         
  5001.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  5002.             IWMMetadataEditor * This);
  5003.         
  5004.         HRESULT ( STDMETHODCALLTYPE *Flush )( 
  5005.             IWMMetadataEditor * This);
  5006.         
  5007.         END_INTERFACE
  5008.     } IWMMetadataEditorVtbl;
  5009.  
  5010.     interface IWMMetadataEditor
  5011.     {
  5012.         CONST_VTBL struct IWMMetadataEditorVtbl *lpVtbl;
  5013.     };
  5014.  
  5015.     
  5016.  
  5017. #ifdef COBJMACROS
  5018.  
  5019.  
  5020. #define IWMMetadataEditor_QueryInterface(This,riid,ppvObject)    \
  5021.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5022.  
  5023. #define IWMMetadataEditor_AddRef(This)    \
  5024.     (This)->lpVtbl -> AddRef(This)
  5025.  
  5026. #define IWMMetadataEditor_Release(This)    \
  5027.     (This)->lpVtbl -> Release(This)
  5028.  
  5029.  
  5030. #define IWMMetadataEditor_Open(This,pwszFilename)    \
  5031.     (This)->lpVtbl -> Open(This,pwszFilename)
  5032.  
  5033. #define IWMMetadataEditor_Close(This)    \
  5034.     (This)->lpVtbl -> Close(This)
  5035.  
  5036. #define IWMMetadataEditor_Flush(This)    \
  5037.     (This)->lpVtbl -> Flush(This)
  5038.  
  5039. #endif /* COBJMACROS */
  5040.  
  5041.  
  5042. #endif     /* C style interface */
  5043.  
  5044.  
  5045.  
  5046. HRESULT STDMETHODCALLTYPE IWMMetadataEditor_Open_Proxy( 
  5047.     IWMMetadataEditor * This,
  5048.     /* [in] */ const WCHAR *pwszFilename);
  5049.  
  5050.  
  5051. void __RPC_STUB IWMMetadataEditor_Open_Stub(
  5052.     IRpcStubBuffer *This,
  5053.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5054.     PRPC_MESSAGE _pRpcMessage,
  5055.     DWORD *_pdwStubPhase);
  5056.  
  5057.  
  5058. HRESULT STDMETHODCALLTYPE IWMMetadataEditor_Close_Proxy( 
  5059.     IWMMetadataEditor * This);
  5060.  
  5061.  
  5062. void __RPC_STUB IWMMetadataEditor_Close_Stub(
  5063.     IRpcStubBuffer *This,
  5064.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5065.     PRPC_MESSAGE _pRpcMessage,
  5066.     DWORD *_pdwStubPhase);
  5067.  
  5068.  
  5069. HRESULT STDMETHODCALLTYPE IWMMetadataEditor_Flush_Proxy( 
  5070.     IWMMetadataEditor * This);
  5071.  
  5072.  
  5073. void __RPC_STUB IWMMetadataEditor_Flush_Stub(
  5074.     IRpcStubBuffer *This,
  5075.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5076.     PRPC_MESSAGE _pRpcMessage,
  5077.     DWORD *_pdwStubPhase);
  5078.  
  5079.  
  5080.  
  5081. #endif     /* __IWMMetadataEditor_INTERFACE_DEFINED__ */
  5082.  
  5083.  
  5084. #ifndef __IWMMetadataEditor2_INTERFACE_DEFINED__
  5085. #define __IWMMetadataEditor2_INTERFACE_DEFINED__
  5086.  
  5087. /* interface IWMMetadataEditor2 */
  5088. /* [local][unique][helpstring][uuid][object] */ 
  5089.  
  5090.  
  5091. EXTERN_C const IID IID_IWMMetadataEditor2;
  5092.  
  5093. #if defined(__cplusplus) && !defined(CINTERFACE)
  5094.     
  5095.     MIDL_INTERFACE("203CFFE3-2E18-4fdf-B59D-6E71530534CF")
  5096.     IWMMetadataEditor2 : public IWMMetadataEditor
  5097.     {
  5098.     public:
  5099.         virtual HRESULT STDMETHODCALLTYPE OpenEx( 
  5100.             /* [in] */ const WCHAR *pwszFilename,
  5101.             /* [in] */ DWORD dwDesiredAccess,
  5102.             /* [in] */ DWORD dwShareMode) = 0;
  5103.         
  5104.     };
  5105.     
  5106. #else     /* C style interface */
  5107.  
  5108.     typedef struct IWMMetadataEditor2Vtbl
  5109.     {
  5110.         BEGIN_INTERFACE
  5111.         
  5112.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  5113.             IWMMetadataEditor2 * This,
  5114.             /* [in] */ REFIID riid,
  5115.             /* [iid_is][out] */ void **ppvObject);
  5116.         
  5117.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  5118.             IWMMetadataEditor2 * This);
  5119.         
  5120.         ULONG ( STDMETHODCALLTYPE *Release )( 
  5121.             IWMMetadataEditor2 * This);
  5122.         
  5123.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  5124.             IWMMetadataEditor2 * This,
  5125.             /* [in] */ const WCHAR *pwszFilename);
  5126.         
  5127.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  5128.             IWMMetadataEditor2 * This);
  5129.         
  5130.         HRESULT ( STDMETHODCALLTYPE *Flush )( 
  5131.             IWMMetadataEditor2 * This);
  5132.         
  5133.         HRESULT ( STDMETHODCALLTYPE *OpenEx )( 
  5134.             IWMMetadataEditor2 * This,
  5135.             /* [in] */ const WCHAR *pwszFilename,
  5136.             /* [in] */ DWORD dwDesiredAccess,
  5137.             /* [in] */ DWORD dwShareMode);
  5138.         
  5139.         END_INTERFACE
  5140.     } IWMMetadataEditor2Vtbl;
  5141.  
  5142.     interface IWMMetadataEditor2
  5143.     {
  5144.         CONST_VTBL struct IWMMetadataEditor2Vtbl *lpVtbl;
  5145.     };
  5146.  
  5147.     
  5148.  
  5149. #ifdef COBJMACROS
  5150.  
  5151.  
  5152. #define IWMMetadataEditor2_QueryInterface(This,riid,ppvObject)    \
  5153.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5154.  
  5155. #define IWMMetadataEditor2_AddRef(This)    \
  5156.     (This)->lpVtbl -> AddRef(This)
  5157.  
  5158. #define IWMMetadataEditor2_Release(This)    \
  5159.     (This)->lpVtbl -> Release(This)
  5160.  
  5161.  
  5162. #define IWMMetadataEditor2_Open(This,pwszFilename)    \
  5163.     (This)->lpVtbl -> Open(This,pwszFilename)
  5164.  
  5165. #define IWMMetadataEditor2_Close(This)    \
  5166.     (This)->lpVtbl -> Close(This)
  5167.  
  5168. #define IWMMetadataEditor2_Flush(This)    \
  5169.     (This)->lpVtbl -> Flush(This)
  5170.  
  5171.  
  5172. #define IWMMetadataEditor2_OpenEx(This,pwszFilename,dwDesiredAccess,dwShareMode)    \
  5173.     (This)->lpVtbl -> OpenEx(This,pwszFilename,dwDesiredAccess,dwShareMode)
  5174.  
  5175. #endif /* COBJMACROS */
  5176.  
  5177.  
  5178. #endif     /* C style interface */
  5179.  
  5180.  
  5181.  
  5182. HRESULT STDMETHODCALLTYPE IWMMetadataEditor2_OpenEx_Proxy( 
  5183.     IWMMetadataEditor2 * This,
  5184.     /* [in] */ const WCHAR *pwszFilename,
  5185.     /* [in] */ DWORD dwDesiredAccess,
  5186.     /* [in] */ DWORD dwShareMode);
  5187.  
  5188.  
  5189. void __RPC_STUB IWMMetadataEditor2_OpenEx_Stub(
  5190.     IRpcStubBuffer *This,
  5191.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5192.     PRPC_MESSAGE _pRpcMessage,
  5193.     DWORD *_pdwStubPhase);
  5194.  
  5195.  
  5196.  
  5197. #endif     /* __IWMMetadataEditor2_INTERFACE_DEFINED__ */
  5198.  
  5199.  
  5200. #ifndef __IWMDRMEditor_INTERFACE_DEFINED__
  5201. #define __IWMDRMEditor_INTERFACE_DEFINED__
  5202.  
  5203. /* interface IWMDRMEditor */
  5204. /* [local][unique][helpstring][uuid][object] */ 
  5205.  
  5206.  
  5207. EXTERN_C const IID IID_IWMDRMEditor;
  5208.  
  5209. #if defined(__cplusplus) && !defined(CINTERFACE)
  5210.     
  5211.     MIDL_INTERFACE("FF130EBC-A6C3-42A6-B401-C3382C3E08B3")
  5212.     IWMDRMEditor : public IUnknown
  5213.     {
  5214.     public:
  5215.         virtual HRESULT STDMETHODCALLTYPE GetDRMProperty( 
  5216.             /* [in] */ LPCWSTR pwstrName,
  5217.             /* [out] */ WMT_ATTR_DATATYPE *pdwType,
  5218.             /* [size_is][out] */ BYTE *pValue,
  5219.             /* [out][in] */ WORD *pcbLength) = 0;
  5220.         
  5221.     };
  5222.     
  5223. #else     /* C style interface */
  5224.  
  5225.     typedef struct IWMDRMEditorVtbl
  5226.     {
  5227.         BEGIN_INTERFACE
  5228.         
  5229.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  5230.             IWMDRMEditor * This,
  5231.             /* [in] */ REFIID riid,
  5232.             /* [iid_is][out] */ void **ppvObject);
  5233.         
  5234.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  5235.             IWMDRMEditor * This);
  5236.         
  5237.         ULONG ( STDMETHODCALLTYPE *Release )( 
  5238.             IWMDRMEditor * This);
  5239.         
  5240.         HRESULT ( STDMETHODCALLTYPE *GetDRMProperty )( 
  5241.             IWMDRMEditor * This,
  5242.             /* [in] */ LPCWSTR pwstrName,
  5243.             /* [out] */ WMT_ATTR_DATATYPE *pdwType,
  5244.             /* [size_is][out] */ BYTE *pValue,
  5245.             /* [out][in] */ WORD *pcbLength);
  5246.         
  5247.         END_INTERFACE
  5248.     } IWMDRMEditorVtbl;
  5249.  
  5250.     interface IWMDRMEditor
  5251.     {
  5252.         CONST_VTBL struct IWMDRMEditorVtbl *lpVtbl;
  5253.     };
  5254.  
  5255.     
  5256.  
  5257. #ifdef COBJMACROS
  5258.  
  5259.  
  5260. #define IWMDRMEditor_QueryInterface(This,riid,ppvObject)    \
  5261.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5262.  
  5263. #define IWMDRMEditor_AddRef(This)    \
  5264.     (This)->lpVtbl -> AddRef(This)
  5265.  
  5266. #define IWMDRMEditor_Release(This)    \
  5267.     (This)->lpVtbl -> Release(This)
  5268.  
  5269.  
  5270. #define IWMDRMEditor_GetDRMProperty(This,pwstrName,pdwType,pValue,pcbLength)    \
  5271.     (This)->lpVtbl -> GetDRMProperty(This,pwstrName,pdwType,pValue,pcbLength)
  5272.  
  5273. #endif /* COBJMACROS */
  5274.  
  5275.  
  5276. #endif     /* C style interface */
  5277.  
  5278.  
  5279.  
  5280. HRESULT STDMETHODCALLTYPE IWMDRMEditor_GetDRMProperty_Proxy( 
  5281.     IWMDRMEditor * This,
  5282.     /* [in] */ LPCWSTR pwstrName,
  5283.     /* [out] */ WMT_ATTR_DATATYPE *pdwType,
  5284.     /* [size_is][out] */ BYTE *pValue,
  5285.     /* [out][in] */ WORD *pcbLength);
  5286.  
  5287.  
  5288. void __RPC_STUB IWMDRMEditor_GetDRMProperty_Stub(
  5289.     IRpcStubBuffer *This,
  5290.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5291.     PRPC_MESSAGE _pRpcMessage,
  5292.     DWORD *_pdwStubPhase);
  5293.  
  5294.  
  5295.  
  5296. #endif     /* __IWMDRMEditor_INTERFACE_DEFINED__ */
  5297.  
  5298.  
  5299. #ifndef __IWMHeaderInfo_INTERFACE_DEFINED__
  5300. #define __IWMHeaderInfo_INTERFACE_DEFINED__
  5301.  
  5302. /* interface IWMHeaderInfo */
  5303. /* [local][unique][helpstring][uuid][object] */ 
  5304.  
  5305.  
  5306. EXTERN_C const IID IID_IWMHeaderInfo;
  5307.  
  5308. #if defined(__cplusplus) && !defined(CINTERFACE)
  5309.     
  5310.     MIDL_INTERFACE("96406BDA-2B2B-11d3-B36B-00C04F6108FF")
  5311.     IWMHeaderInfo : public IUnknown
  5312.     {
  5313.     public:
  5314.         virtual HRESULT STDMETHODCALLTYPE GetAttributeCount( 
  5315.             /* [in] */ WORD wStreamNum,
  5316.             /* [out] */ WORD *pcAttributes) = 0;
  5317.         
  5318.         virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndex( 
  5319.             /* [in] */ WORD wIndex,
  5320.             /* [out][in] */ WORD *pwStreamNum,
  5321.             /* [size_is][out] */ WCHAR *pwszName,
  5322.             /* [out][in] */ WORD *pcchNameLen,
  5323.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  5324.             /* [size_is][out] */ BYTE *pValue,
  5325.             /* [out][in] */ WORD *pcbLength) = 0;
  5326.         
  5327.         virtual HRESULT STDMETHODCALLTYPE GetAttributeByName( 
  5328.             /* [out][in] */ WORD *pwStreamNum,
  5329.             /* [in] */ LPCWSTR pszName,
  5330.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  5331.             /* [size_is][out] */ BYTE *pValue,
  5332.             /* [out][in] */ WORD *pcbLength) = 0;
  5333.         
  5334.         virtual HRESULT STDMETHODCALLTYPE SetAttribute( 
  5335.             /* [in] */ WORD wStreamNum,
  5336.             /* [in] */ LPCWSTR pszName,
  5337.             /* [in] */ WMT_ATTR_DATATYPE Type,
  5338.             /* [size_is][in] */ const BYTE *pValue,
  5339.             /* [in] */ WORD cbLength) = 0;
  5340.         
  5341.         virtual HRESULT STDMETHODCALLTYPE GetMarkerCount( 
  5342.             /* [out] */ WORD *pcMarkers) = 0;
  5343.         
  5344.         virtual HRESULT STDMETHODCALLTYPE GetMarker( 
  5345.             /* [in] */ WORD wIndex,
  5346.             /* [size_is][out] */ WCHAR *pwszMarkerName,
  5347.             /* [out][in] */ WORD *pcchMarkerNameLen,
  5348.             /* [out] */ QWORD *pcnsMarkerTime) = 0;
  5349.         
  5350.         virtual HRESULT STDMETHODCALLTYPE AddMarker( 
  5351.             /* [in] */ WCHAR *pwszMarkerName,
  5352.             /* [in] */ QWORD cnsMarkerTime) = 0;
  5353.         
  5354.         virtual HRESULT STDMETHODCALLTYPE RemoveMarker( 
  5355.             /* [in] */ WORD wIndex) = 0;
  5356.         
  5357.         virtual HRESULT STDMETHODCALLTYPE GetScriptCount( 
  5358.             /* [out] */ WORD *pcScripts) = 0;
  5359.         
  5360.         virtual HRESULT STDMETHODCALLTYPE GetScript( 
  5361.             /* [in] */ WORD wIndex,
  5362.             /* [size_is][out] */ WCHAR *pwszType,
  5363.             /* [out][in] */ WORD *pcchTypeLen,
  5364.             /* [size_is][out] */ WCHAR *pwszCommand,
  5365.             /* [out][in] */ WORD *pcchCommandLen,
  5366.             /* [out] */ QWORD *pcnsScriptTime) = 0;
  5367.         
  5368.         virtual HRESULT STDMETHODCALLTYPE AddScript( 
  5369.             /* [in] */ WCHAR *pwszType,
  5370.             /* [in] */ WCHAR *pwszCommand,
  5371.             /* [in] */ QWORD cnsScriptTime) = 0;
  5372.         
  5373.         virtual HRESULT STDMETHODCALLTYPE RemoveScript( 
  5374.             /* [in] */ WORD wIndex) = 0;
  5375.         
  5376.     };
  5377.     
  5378. #else     /* C style interface */
  5379.  
  5380.     typedef struct IWMHeaderInfoVtbl
  5381.     {
  5382.         BEGIN_INTERFACE
  5383.         
  5384.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  5385.             IWMHeaderInfo * This,
  5386.             /* [in] */ REFIID riid,
  5387.             /* [iid_is][out] */ void **ppvObject);
  5388.         
  5389.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  5390.             IWMHeaderInfo * This);
  5391.         
  5392.         ULONG ( STDMETHODCALLTYPE *Release )( 
  5393.             IWMHeaderInfo * This);
  5394.         
  5395.         HRESULT ( STDMETHODCALLTYPE *GetAttributeCount )( 
  5396.             IWMHeaderInfo * This,
  5397.             /* [in] */ WORD wStreamNum,
  5398.             /* [out] */ WORD *pcAttributes);
  5399.         
  5400.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByIndex )( 
  5401.             IWMHeaderInfo * This,
  5402.             /* [in] */ WORD wIndex,
  5403.             /* [out][in] */ WORD *pwStreamNum,
  5404.             /* [size_is][out] */ WCHAR *pwszName,
  5405.             /* [out][in] */ WORD *pcchNameLen,
  5406.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  5407.             /* [size_is][out] */ BYTE *pValue,
  5408.             /* [out][in] */ WORD *pcbLength);
  5409.         
  5410.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByName )( 
  5411.             IWMHeaderInfo * This,
  5412.             /* [out][in] */ WORD *pwStreamNum,
  5413.             /* [in] */ LPCWSTR pszName,
  5414.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  5415.             /* [size_is][out] */ BYTE *pValue,
  5416.             /* [out][in] */ WORD *pcbLength);
  5417.         
  5418.         HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
  5419.             IWMHeaderInfo * This,
  5420.             /* [in] */ WORD wStreamNum,
  5421.             /* [in] */ LPCWSTR pszName,
  5422.             /* [in] */ WMT_ATTR_DATATYPE Type,
  5423.             /* [size_is][in] */ const BYTE *pValue,
  5424.             /* [in] */ WORD cbLength);
  5425.         
  5426.         HRESULT ( STDMETHODCALLTYPE *GetMarkerCount )( 
  5427.             IWMHeaderInfo * This,
  5428.             /* [out] */ WORD *pcMarkers);
  5429.         
  5430.         HRESULT ( STDMETHODCALLTYPE *GetMarker )( 
  5431.             IWMHeaderInfo * This,
  5432.             /* [in] */ WORD wIndex,
  5433.             /* [size_is][out] */ WCHAR *pwszMarkerName,
  5434.             /* [out][in] */ WORD *pcchMarkerNameLen,
  5435.             /* [out] */ QWORD *pcnsMarkerTime);
  5436.         
  5437.         HRESULT ( STDMETHODCALLTYPE *AddMarker )( 
  5438.             IWMHeaderInfo * This,
  5439.             /* [in] */ WCHAR *pwszMarkerName,
  5440.             /* [in] */ QWORD cnsMarkerTime);
  5441.         
  5442.         HRESULT ( STDMETHODCALLTYPE *RemoveMarker )( 
  5443.             IWMHeaderInfo * This,
  5444.             /* [in] */ WORD wIndex);
  5445.         
  5446.         HRESULT ( STDMETHODCALLTYPE *GetScriptCount )( 
  5447.             IWMHeaderInfo * This,
  5448.             /* [out] */ WORD *pcScripts);
  5449.         
  5450.         HRESULT ( STDMETHODCALLTYPE *GetScript )( 
  5451.             IWMHeaderInfo * This,
  5452.             /* [in] */ WORD wIndex,
  5453.             /* [size_is][out] */ WCHAR *pwszType,
  5454.             /* [out][in] */ WORD *pcchTypeLen,
  5455.             /* [size_is][out] */ WCHAR *pwszCommand,
  5456.             /* [out][in] */ WORD *pcchCommandLen,
  5457.             /* [out] */ QWORD *pcnsScriptTime);
  5458.         
  5459.         HRESULT ( STDMETHODCALLTYPE *AddScript )( 
  5460.             IWMHeaderInfo * This,
  5461.             /* [in] */ WCHAR *pwszType,
  5462.             /* [in] */ WCHAR *pwszCommand,
  5463.             /* [in] */ QWORD cnsScriptTime);
  5464.         
  5465.         HRESULT ( STDMETHODCALLTYPE *RemoveScript )( 
  5466.             IWMHeaderInfo * This,
  5467.             /* [in] */ WORD wIndex);
  5468.         
  5469.         END_INTERFACE
  5470.     } IWMHeaderInfoVtbl;
  5471.  
  5472.     interface IWMHeaderInfo
  5473.     {
  5474.         CONST_VTBL struct IWMHeaderInfoVtbl *lpVtbl;
  5475.     };
  5476.  
  5477.     
  5478.  
  5479. #ifdef COBJMACROS
  5480.  
  5481.  
  5482. #define IWMHeaderInfo_QueryInterface(This,riid,ppvObject)    \
  5483.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5484.  
  5485. #define IWMHeaderInfo_AddRef(This)    \
  5486.     (This)->lpVtbl -> AddRef(This)
  5487.  
  5488. #define IWMHeaderInfo_Release(This)    \
  5489.     (This)->lpVtbl -> Release(This)
  5490.  
  5491.  
  5492. #define IWMHeaderInfo_GetAttributeCount(This,wStreamNum,pcAttributes)    \
  5493.     (This)->lpVtbl -> GetAttributeCount(This,wStreamNum,pcAttributes)
  5494.  
  5495. #define IWMHeaderInfo_GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)    \
  5496.     (This)->lpVtbl -> GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)
  5497.  
  5498. #define IWMHeaderInfo_GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)    \
  5499.     (This)->lpVtbl -> GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)
  5500.  
  5501. #define IWMHeaderInfo_SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)    \
  5502.     (This)->lpVtbl -> SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)
  5503.  
  5504. #define IWMHeaderInfo_GetMarkerCount(This,pcMarkers)    \
  5505.     (This)->lpVtbl -> GetMarkerCount(This,pcMarkers)
  5506.  
  5507. #define IWMHeaderInfo_GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)    \
  5508.     (This)->lpVtbl -> GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)
  5509.  
  5510. #define IWMHeaderInfo_AddMarker(This,pwszMarkerName,cnsMarkerTime)    \
  5511.     (This)->lpVtbl -> AddMarker(This,pwszMarkerName,cnsMarkerTime)
  5512.  
  5513. #define IWMHeaderInfo_RemoveMarker(This,wIndex)    \
  5514.     (This)->lpVtbl -> RemoveMarker(This,wIndex)
  5515.  
  5516. #define IWMHeaderInfo_GetScriptCount(This,pcScripts)    \
  5517.     (This)->lpVtbl -> GetScriptCount(This,pcScripts)
  5518.  
  5519. #define IWMHeaderInfo_GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)    \
  5520.     (This)->lpVtbl -> GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)
  5521.  
  5522. #define IWMHeaderInfo_AddScript(This,pwszType,pwszCommand,cnsScriptTime)    \
  5523.     (This)->lpVtbl -> AddScript(This,pwszType,pwszCommand,cnsScriptTime)
  5524.  
  5525. #define IWMHeaderInfo_RemoveScript(This,wIndex)    \
  5526.     (This)->lpVtbl -> RemoveScript(This,wIndex)
  5527.  
  5528. #endif /* COBJMACROS */
  5529.  
  5530.  
  5531. #endif     /* C style interface */
  5532.  
  5533.  
  5534.  
  5535. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetAttributeCount_Proxy( 
  5536.     IWMHeaderInfo * This,
  5537.     /* [in] */ WORD wStreamNum,
  5538.     /* [out] */ WORD *pcAttributes);
  5539.  
  5540.  
  5541. void __RPC_STUB IWMHeaderInfo_GetAttributeCount_Stub(
  5542.     IRpcStubBuffer *This,
  5543.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5544.     PRPC_MESSAGE _pRpcMessage,
  5545.     DWORD *_pdwStubPhase);
  5546.  
  5547.  
  5548. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetAttributeByIndex_Proxy( 
  5549.     IWMHeaderInfo * This,
  5550.     /* [in] */ WORD wIndex,
  5551.     /* [out][in] */ WORD *pwStreamNum,
  5552.     /* [size_is][out] */ WCHAR *pwszName,
  5553.     /* [out][in] */ WORD *pcchNameLen,
  5554.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  5555.     /* [size_is][out] */ BYTE *pValue,
  5556.     /* [out][in] */ WORD *pcbLength);
  5557.  
  5558.  
  5559. void __RPC_STUB IWMHeaderInfo_GetAttributeByIndex_Stub(
  5560.     IRpcStubBuffer *This,
  5561.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5562.     PRPC_MESSAGE _pRpcMessage,
  5563.     DWORD *_pdwStubPhase);
  5564.  
  5565.  
  5566. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetAttributeByName_Proxy( 
  5567.     IWMHeaderInfo * This,
  5568.     /* [out][in] */ WORD *pwStreamNum,
  5569.     /* [in] */ LPCWSTR pszName,
  5570.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  5571.     /* [size_is][out] */ BYTE *pValue,
  5572.     /* [out][in] */ WORD *pcbLength);
  5573.  
  5574.  
  5575. void __RPC_STUB IWMHeaderInfo_GetAttributeByName_Stub(
  5576.     IRpcStubBuffer *This,
  5577.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5578.     PRPC_MESSAGE _pRpcMessage,
  5579.     DWORD *_pdwStubPhase);
  5580.  
  5581.  
  5582. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_SetAttribute_Proxy( 
  5583.     IWMHeaderInfo * This,
  5584.     /* [in] */ WORD wStreamNum,
  5585.     /* [in] */ LPCWSTR pszName,
  5586.     /* [in] */ WMT_ATTR_DATATYPE Type,
  5587.     /* [size_is][in] */ const BYTE *pValue,
  5588.     /* [in] */ WORD cbLength);
  5589.  
  5590.  
  5591. void __RPC_STUB IWMHeaderInfo_SetAttribute_Stub(
  5592.     IRpcStubBuffer *This,
  5593.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5594.     PRPC_MESSAGE _pRpcMessage,
  5595.     DWORD *_pdwStubPhase);
  5596.  
  5597.  
  5598. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetMarkerCount_Proxy( 
  5599.     IWMHeaderInfo * This,
  5600.     /* [out] */ WORD *pcMarkers);
  5601.  
  5602.  
  5603. void __RPC_STUB IWMHeaderInfo_GetMarkerCount_Stub(
  5604.     IRpcStubBuffer *This,
  5605.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5606.     PRPC_MESSAGE _pRpcMessage,
  5607.     DWORD *_pdwStubPhase);
  5608.  
  5609.  
  5610. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetMarker_Proxy( 
  5611.     IWMHeaderInfo * This,
  5612.     /* [in] */ WORD wIndex,
  5613.     /* [size_is][out] */ WCHAR *pwszMarkerName,
  5614.     /* [out][in] */ WORD *pcchMarkerNameLen,
  5615.     /* [out] */ QWORD *pcnsMarkerTime);
  5616.  
  5617.  
  5618. void __RPC_STUB IWMHeaderInfo_GetMarker_Stub(
  5619.     IRpcStubBuffer *This,
  5620.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5621.     PRPC_MESSAGE _pRpcMessage,
  5622.     DWORD *_pdwStubPhase);
  5623.  
  5624.  
  5625. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_AddMarker_Proxy( 
  5626.     IWMHeaderInfo * This,
  5627.     /* [in] */ WCHAR *pwszMarkerName,
  5628.     /* [in] */ QWORD cnsMarkerTime);
  5629.  
  5630.  
  5631. void __RPC_STUB IWMHeaderInfo_AddMarker_Stub(
  5632.     IRpcStubBuffer *This,
  5633.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5634.     PRPC_MESSAGE _pRpcMessage,
  5635.     DWORD *_pdwStubPhase);
  5636.  
  5637.  
  5638. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_RemoveMarker_Proxy( 
  5639.     IWMHeaderInfo * This,
  5640.     /* [in] */ WORD wIndex);
  5641.  
  5642.  
  5643. void __RPC_STUB IWMHeaderInfo_RemoveMarker_Stub(
  5644.     IRpcStubBuffer *This,
  5645.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5646.     PRPC_MESSAGE _pRpcMessage,
  5647.     DWORD *_pdwStubPhase);
  5648.  
  5649.  
  5650. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetScriptCount_Proxy( 
  5651.     IWMHeaderInfo * This,
  5652.     /* [out] */ WORD *pcScripts);
  5653.  
  5654.  
  5655. void __RPC_STUB IWMHeaderInfo_GetScriptCount_Stub(
  5656.     IRpcStubBuffer *This,
  5657.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5658.     PRPC_MESSAGE _pRpcMessage,
  5659.     DWORD *_pdwStubPhase);
  5660.  
  5661.  
  5662. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetScript_Proxy( 
  5663.     IWMHeaderInfo * This,
  5664.     /* [in] */ WORD wIndex,
  5665.     /* [size_is][out] */ WCHAR *pwszType,
  5666.     /* [out][in] */ WORD *pcchTypeLen,
  5667.     /* [size_is][out] */ WCHAR *pwszCommand,
  5668.     /* [out][in] */ WORD *pcchCommandLen,
  5669.     /* [out] */ QWORD *pcnsScriptTime);
  5670.  
  5671.  
  5672. void __RPC_STUB IWMHeaderInfo_GetScript_Stub(
  5673.     IRpcStubBuffer *This,
  5674.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5675.     PRPC_MESSAGE _pRpcMessage,
  5676.     DWORD *_pdwStubPhase);
  5677.  
  5678.  
  5679. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_AddScript_Proxy( 
  5680.     IWMHeaderInfo * This,
  5681.     /* [in] */ WCHAR *pwszType,
  5682.     /* [in] */ WCHAR *pwszCommand,
  5683.     /* [in] */ QWORD cnsScriptTime);
  5684.  
  5685.  
  5686. void __RPC_STUB IWMHeaderInfo_AddScript_Stub(
  5687.     IRpcStubBuffer *This,
  5688.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5689.     PRPC_MESSAGE _pRpcMessage,
  5690.     DWORD *_pdwStubPhase);
  5691.  
  5692.  
  5693. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_RemoveScript_Proxy( 
  5694.     IWMHeaderInfo * This,
  5695.     /* [in] */ WORD wIndex);
  5696.  
  5697.  
  5698. void __RPC_STUB IWMHeaderInfo_RemoveScript_Stub(
  5699.     IRpcStubBuffer *This,
  5700.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5701.     PRPC_MESSAGE _pRpcMessage,
  5702.     DWORD *_pdwStubPhase);
  5703.  
  5704.  
  5705.  
  5706. #endif     /* __IWMHeaderInfo_INTERFACE_DEFINED__ */
  5707.  
  5708.  
  5709. #ifndef __IWMHeaderInfo2_INTERFACE_DEFINED__
  5710. #define __IWMHeaderInfo2_INTERFACE_DEFINED__
  5711.  
  5712. /* interface IWMHeaderInfo2 */
  5713. /* [local][unique][helpstring][uuid][object] */ 
  5714.  
  5715.  
  5716. EXTERN_C const IID IID_IWMHeaderInfo2;
  5717.  
  5718. #if defined(__cplusplus) && !defined(CINTERFACE)
  5719.     
  5720.     MIDL_INTERFACE("15CF9781-454E-482e-B393-85FAE487A810")
  5721.     IWMHeaderInfo2 : public IWMHeaderInfo
  5722.     {
  5723.     public:
  5724.         virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount( 
  5725.             /* [out] */ DWORD *pcCodecInfos) = 0;
  5726.         
  5727.         virtual HRESULT STDMETHODCALLTYPE GetCodecInfo( 
  5728.             /* [in] */ DWORD wIndex,
  5729.             /* [out][in] */ WORD *pcchName,
  5730.             /* [size_is][out] */ WCHAR *pwszName,
  5731.             /* [out][in] */ WORD *pcchDescription,
  5732.             /* [size_is][out] */ WCHAR *pwszDescription,
  5733.             /* [out] */ DWORD *pCodecType,
  5734.             /* [out][in] */ WORD *pcbCodecInfo,
  5735.             /* [size_is][out] */ BYTE *pbCodecInfo) = 0;
  5736.         
  5737.     };
  5738.     
  5739. #else     /* C style interface */
  5740.  
  5741.     typedef struct IWMHeaderInfo2Vtbl
  5742.     {
  5743.         BEGIN_INTERFACE
  5744.         
  5745.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  5746.             IWMHeaderInfo2 * This,
  5747.             /* [in] */ REFIID riid,
  5748.             /* [iid_is][out] */ void **ppvObject);
  5749.         
  5750.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  5751.             IWMHeaderInfo2 * This);
  5752.         
  5753.         ULONG ( STDMETHODCALLTYPE *Release )( 
  5754.             IWMHeaderInfo2 * This);
  5755.         
  5756.         HRESULT ( STDMETHODCALLTYPE *GetAttributeCount )( 
  5757.             IWMHeaderInfo2 * This,
  5758.             /* [in] */ WORD wStreamNum,
  5759.             /* [out] */ WORD *pcAttributes);
  5760.         
  5761.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByIndex )( 
  5762.             IWMHeaderInfo2 * This,
  5763.             /* [in] */ WORD wIndex,
  5764.             /* [out][in] */ WORD *pwStreamNum,
  5765.             /* [size_is][out] */ WCHAR *pwszName,
  5766.             /* [out][in] */ WORD *pcchNameLen,
  5767.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  5768.             /* [size_is][out] */ BYTE *pValue,
  5769.             /* [out][in] */ WORD *pcbLength);
  5770.         
  5771.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByName )( 
  5772.             IWMHeaderInfo2 * This,
  5773.             /* [out][in] */ WORD *pwStreamNum,
  5774.             /* [in] */ LPCWSTR pszName,
  5775.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  5776.             /* [size_is][out] */ BYTE *pValue,
  5777.             /* [out][in] */ WORD *pcbLength);
  5778.         
  5779.         HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
  5780.             IWMHeaderInfo2 * This,
  5781.             /* [in] */ WORD wStreamNum,
  5782.             /* [in] */ LPCWSTR pszName,
  5783.             /* [in] */ WMT_ATTR_DATATYPE Type,
  5784.             /* [size_is][in] */ const BYTE *pValue,
  5785.             /* [in] */ WORD cbLength);
  5786.         
  5787.         HRESULT ( STDMETHODCALLTYPE *GetMarkerCount )( 
  5788.             IWMHeaderInfo2 * This,
  5789.             /* [out] */ WORD *pcMarkers);
  5790.         
  5791.         HRESULT ( STDMETHODCALLTYPE *GetMarker )( 
  5792.             IWMHeaderInfo2 * This,
  5793.             /* [in] */ WORD wIndex,
  5794.             /* [size_is][out] */ WCHAR *pwszMarkerName,
  5795.             /* [out][in] */ WORD *pcchMarkerNameLen,
  5796.             /* [out] */ QWORD *pcnsMarkerTime);
  5797.         
  5798.         HRESULT ( STDMETHODCALLTYPE *AddMarker )( 
  5799.             IWMHeaderInfo2 * This,
  5800.             /* [in] */ WCHAR *pwszMarkerName,
  5801.             /* [in] */ QWORD cnsMarkerTime);
  5802.         
  5803.         HRESULT ( STDMETHODCALLTYPE *RemoveMarker )( 
  5804.             IWMHeaderInfo2 * This,
  5805.             /* [in] */ WORD wIndex);
  5806.         
  5807.         HRESULT ( STDMETHODCALLTYPE *GetScriptCount )( 
  5808.             IWMHeaderInfo2 * This,
  5809.             /* [out] */ WORD *pcScripts);
  5810.         
  5811.         HRESULT ( STDMETHODCALLTYPE *GetScript )( 
  5812.             IWMHeaderInfo2 * This,
  5813.             /* [in] */ WORD wIndex,
  5814.             /* [size_is][out] */ WCHAR *pwszType,
  5815.             /* [out][in] */ WORD *pcchTypeLen,
  5816.             /* [size_is][out] */ WCHAR *pwszCommand,
  5817.             /* [out][in] */ WORD *pcchCommandLen,
  5818.             /* [out] */ QWORD *pcnsScriptTime);
  5819.         
  5820.         HRESULT ( STDMETHODCALLTYPE *AddScript )( 
  5821.             IWMHeaderInfo2 * This,
  5822.             /* [in] */ WCHAR *pwszType,
  5823.             /* [in] */ WCHAR *pwszCommand,
  5824.             /* [in] */ QWORD cnsScriptTime);
  5825.         
  5826.         HRESULT ( STDMETHODCALLTYPE *RemoveScript )( 
  5827.             IWMHeaderInfo2 * This,
  5828.             /* [in] */ WORD wIndex);
  5829.         
  5830.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfoCount )( 
  5831.             IWMHeaderInfo2 * This,
  5832.             /* [out] */ DWORD *pcCodecInfos);
  5833.         
  5834.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfo )( 
  5835.             IWMHeaderInfo2 * This,
  5836.             /* [in] */ DWORD wIndex,
  5837.             /* [out][in] */ WORD *pcchName,
  5838.             /* [size_is][out] */ WCHAR *pwszName,
  5839.             /* [out][in] */ WORD *pcchDescription,
  5840.             /* [size_is][out] */ WCHAR *pwszDescription,
  5841.             /* [out] */ WMT_CODEC_INFO_TYPE *pCodecType,
  5842.             /* [out][in] */ WORD *pcbCodecInfo,
  5843.             /* [size_is][out] */ BYTE *pbCodecInfo);
  5844.         
  5845.         END_INTERFACE
  5846.     } IWMHeaderInfo2Vtbl;
  5847.  
  5848.     interface IWMHeaderInfo2
  5849.     {
  5850.         CONST_VTBL struct IWMHeaderInfo2Vtbl *lpVtbl;
  5851.     };
  5852.  
  5853.     
  5854.  
  5855. #ifdef COBJMACROS
  5856.  
  5857.  
  5858. #define IWMHeaderInfo2_QueryInterface(This,riid,ppvObject)    \
  5859.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5860.  
  5861. #define IWMHeaderInfo2_AddRef(This)    \
  5862.     (This)->lpVtbl -> AddRef(This)
  5863.  
  5864. #define IWMHeaderInfo2_Release(This)    \
  5865.     (This)->lpVtbl -> Release(This)
  5866.  
  5867.  
  5868. #define IWMHeaderInfo2_GetAttributeCount(This,wStreamNum,pcAttributes)    \
  5869.     (This)->lpVtbl -> GetAttributeCount(This,wStreamNum,pcAttributes)
  5870.  
  5871. #define IWMHeaderInfo2_GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)    \
  5872.     (This)->lpVtbl -> GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)
  5873.  
  5874. #define IWMHeaderInfo2_GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)    \
  5875.     (This)->lpVtbl -> GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)
  5876.  
  5877. #define IWMHeaderInfo2_SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)    \
  5878.     (This)->lpVtbl -> SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)
  5879.  
  5880. #define IWMHeaderInfo2_GetMarkerCount(This,pcMarkers)    \
  5881.     (This)->lpVtbl -> GetMarkerCount(This,pcMarkers)
  5882.  
  5883. #define IWMHeaderInfo2_GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)    \
  5884.     (This)->lpVtbl -> GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)
  5885.  
  5886. #define IWMHeaderInfo2_AddMarker(This,pwszMarkerName,cnsMarkerTime)    \
  5887.     (This)->lpVtbl -> AddMarker(This,pwszMarkerName,cnsMarkerTime)
  5888.  
  5889. #define IWMHeaderInfo2_RemoveMarker(This,wIndex)    \
  5890.     (This)->lpVtbl -> RemoveMarker(This,wIndex)
  5891.  
  5892. #define IWMHeaderInfo2_GetScriptCount(This,pcScripts)    \
  5893.     (This)->lpVtbl -> GetScriptCount(This,pcScripts)
  5894.  
  5895. #define IWMHeaderInfo2_GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)    \
  5896.     (This)->lpVtbl -> GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)
  5897.  
  5898. #define IWMHeaderInfo2_AddScript(This,pwszType,pwszCommand,cnsScriptTime)    \
  5899.     (This)->lpVtbl -> AddScript(This,pwszType,pwszCommand,cnsScriptTime)
  5900.  
  5901. #define IWMHeaderInfo2_RemoveScript(This,wIndex)    \
  5902.     (This)->lpVtbl -> RemoveScript(This,wIndex)
  5903.  
  5904.  
  5905. #define IWMHeaderInfo2_GetCodecInfoCount(This,pcCodecInfos)    \
  5906.     (This)->lpVtbl -> GetCodecInfoCount(This,pcCodecInfos)
  5907.  
  5908. #define IWMHeaderInfo2_GetCodecInfo(This,wIndex,pcchName,pwszName,pcchDescription,pwszDescription,pCodecType,pcbCodecInfo,pbCodecInfo)    \
  5909.     (This)->lpVtbl -> GetCodecInfo(This,wIndex,pcchName,pwszName,pcchDescription,pwszDescription,pCodecType,pcbCodecInfo,pbCodecInfo)
  5910.  
  5911. #endif /* COBJMACROS */
  5912.  
  5913.  
  5914. #endif     /* C style interface */
  5915.  
  5916.  
  5917.  
  5918. HRESULT STDMETHODCALLTYPE IWMHeaderInfo2_GetCodecInfoCount_Proxy( 
  5919.     IWMHeaderInfo2 * This,
  5920.     /* [out] */ DWORD *pcCodecInfos);
  5921.  
  5922.  
  5923. void __RPC_STUB IWMHeaderInfo2_GetCodecInfoCount_Stub(
  5924.     IRpcStubBuffer *This,
  5925.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5926.     PRPC_MESSAGE _pRpcMessage,
  5927.     DWORD *_pdwStubPhase);
  5928.  
  5929.  
  5930. HRESULT STDMETHODCALLTYPE IWMHeaderInfo2_GetCodecInfo_Proxy( 
  5931.     IWMHeaderInfo2 * This,
  5932.     /* [in] */ DWORD wIndex,
  5933.     /* [out][in] */ WORD *pcchName,
  5934.     /* [size_is][out] */ WCHAR *pwszName,
  5935.     /* [out][in] */ WORD *pcchDescription,
  5936.     /* [size_is][out] */ WCHAR *pwszDescription,
  5937.     /* [out] */ WMT_CODEC_INFO_TYPE *pCodecType,
  5938.     /* [out][in] */ WORD *pcbCodecInfo,
  5939.     /* [size_is][out] */ BYTE *pbCodecInfo);
  5940.  
  5941.  
  5942. void __RPC_STUB IWMHeaderInfo2_GetCodecInfo_Stub(
  5943.     IRpcStubBuffer *This,
  5944.     IRpcChannelBuffer *_pRpcChannelBuffer,
  5945.     PRPC_MESSAGE _pRpcMessage,
  5946.     DWORD *_pdwStubPhase);
  5947.  
  5948.  
  5949.  
  5950. #endif     /* __IWMHeaderInfo2_INTERFACE_DEFINED__ */
  5951.  
  5952.  
  5953. #ifndef __IWMHeaderInfo3_INTERFACE_DEFINED__
  5954. #define __IWMHeaderInfo3_INTERFACE_DEFINED__
  5955.  
  5956. /* interface IWMHeaderInfo3 */
  5957. /* [local][unique][helpstring][uuid][object] */ 
  5958.  
  5959.  
  5960. EXTERN_C const IID IID_IWMHeaderInfo3;
  5961.  
  5962. #if defined(__cplusplus) && !defined(CINTERFACE)
  5963.     
  5964.     MIDL_INTERFACE("15CC68E3-27CC-4ecd-B222-3F5D02D80BD5")
  5965.     IWMHeaderInfo3 : public IWMHeaderInfo2
  5966.     {
  5967.     public:
  5968.         virtual HRESULT STDMETHODCALLTYPE GetAttributeCountEx( 
  5969.             /* [in] */ WORD wStreamNum,
  5970.             /* [out] */ WORD *pcAttributes) = 0;
  5971.         
  5972.         virtual HRESULT STDMETHODCALLTYPE GetAttributeIndices( 
  5973.             /* [in] */ WORD wStreamNum,
  5974.             /* [in] */ LPCWSTR pwszName,
  5975.             /* [in] */ WORD *pwLangIndex,
  5976.             /* [size_is][out] */ WORD *pwIndices,
  5977.             /* [out][in] */ WORD *pwCount) = 0;
  5978.         
  5979.         virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndexEx( 
  5980.             /* [in] */ WORD wStreamNum,
  5981.             /* [in] */ WORD wIndex,
  5982.             /* [size_is][out] */ LPWSTR pwszName,
  5983.             /* [out][in] */ WORD *pwNameLen,
  5984.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  5985.             /* [out] */ WORD *pwLangIndex,
  5986.             /* [size_is][out] */ BYTE *pValue,
  5987.             /* [out][in] */ DWORD *pdwDataLength) = 0;
  5988.         
  5989.         virtual HRESULT STDMETHODCALLTYPE ModifyAttribute( 
  5990.             /* [in] */ WORD wStreamNum,
  5991.             /* [in] */ WORD wIndex,
  5992.             /* [in] */ WMT_ATTR_DATATYPE Type,
  5993.             /* [in] */ WORD wLangIndex,
  5994.             /* [size_is][in] */ const BYTE *pValue,
  5995.             /* [in] */ DWORD dwLength) = 0;
  5996.         
  5997.         virtual HRESULT STDMETHODCALLTYPE AddAttribute( 
  5998.             /* [in] */ WORD wStreamNum,
  5999.             /* [in] */ LPCWSTR pszName,
  6000.             /* [out] */ WORD *pwIndex,
  6001.             /* [in] */ WMT_ATTR_DATATYPE Type,
  6002.             /* [in] */ WORD wLangIndex,
  6003.             /* [size_is][in] */ const BYTE *pValue,
  6004.             /* [in] */ DWORD dwLength) = 0;
  6005.         
  6006.         virtual HRESULT STDMETHODCALLTYPE DeleteAttribute( 
  6007.             /* [in] */ WORD wStreamNum,
  6008.             /* [in] */ WORD wIndex) = 0;
  6009.         
  6010.         virtual HRESULT STDMETHODCALLTYPE AddCodecInfo( 
  6011.             /* [in] */ WCHAR *pwszName,
  6012.             /* [in] */ WCHAR *pwszDescription,
  6013.             /* [in] */ WMT_CODEC_INFO_TYPE codecType,
  6014.             /* [in] */ WORD cbCodecInfo,
  6015.             /* [size_is][in] */ BYTE *pbCodecInfo) = 0;
  6016.         
  6017.     };
  6018.     
  6019. #else     /* C style interface */
  6020.  
  6021.     typedef struct IWMHeaderInfo3Vtbl
  6022.     {
  6023.         BEGIN_INTERFACE
  6024.         
  6025.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  6026.             IWMHeaderInfo3 * This,
  6027.             /* [in] */ REFIID riid,
  6028.             /* [iid_is][out] */ void **ppvObject);
  6029.         
  6030.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  6031.             IWMHeaderInfo3 * This);
  6032.         
  6033.         ULONG ( STDMETHODCALLTYPE *Release )( 
  6034.             IWMHeaderInfo3 * This);
  6035.         
  6036.         HRESULT ( STDMETHODCALLTYPE *GetAttributeCount )( 
  6037.             IWMHeaderInfo3 * This,
  6038.             /* [in] */ WORD wStreamNum,
  6039.             /* [out] */ WORD *pcAttributes);
  6040.         
  6041.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByIndex )( 
  6042.             IWMHeaderInfo3 * This,
  6043.             /* [in] */ WORD wIndex,
  6044.             /* [out][in] */ WORD *pwStreamNum,
  6045.             /* [size_is][out] */ WCHAR *pwszName,
  6046.             /* [out][in] */ WORD *pcchNameLen,
  6047.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  6048.             /* [size_is][out] */ BYTE *pValue,
  6049.             /* [out][in] */ WORD *pcbLength);
  6050.         
  6051.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByName )( 
  6052.             IWMHeaderInfo3 * This,
  6053.             /* [out][in] */ WORD *pwStreamNum,
  6054.             /* [in] */ LPCWSTR pszName,
  6055.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  6056.             /* [size_is][out] */ BYTE *pValue,
  6057.             /* [out][in] */ WORD *pcbLength);
  6058.         
  6059.         HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
  6060.             IWMHeaderInfo3 * This,
  6061.             /* [in] */ WORD wStreamNum,
  6062.             /* [in] */ LPCWSTR pszName,
  6063.             /* [in] */ WMT_ATTR_DATATYPE Type,
  6064.             /* [size_is][in] */ const BYTE *pValue,
  6065.             /* [in] */ WORD cbLength);
  6066.         
  6067.         HRESULT ( STDMETHODCALLTYPE *GetMarkerCount )( 
  6068.             IWMHeaderInfo3 * This,
  6069.             /* [out] */ WORD *pcMarkers);
  6070.         
  6071.         HRESULT ( STDMETHODCALLTYPE *GetMarker )( 
  6072.             IWMHeaderInfo3 * This,
  6073.             /* [in] */ WORD wIndex,
  6074.             /* [size_is][out] */ WCHAR *pwszMarkerName,
  6075.             /* [out][in] */ WORD *pcchMarkerNameLen,
  6076.             /* [out] */ QWORD *pcnsMarkerTime);
  6077.         
  6078.         HRESULT ( STDMETHODCALLTYPE *AddMarker )( 
  6079.             IWMHeaderInfo3 * This,
  6080.             /* [in] */ WCHAR *pwszMarkerName,
  6081.             /* [in] */ QWORD cnsMarkerTime);
  6082.         
  6083.         HRESULT ( STDMETHODCALLTYPE *RemoveMarker )( 
  6084.             IWMHeaderInfo3 * This,
  6085.             /* [in] */ WORD wIndex);
  6086.         
  6087.         HRESULT ( STDMETHODCALLTYPE *GetScriptCount )( 
  6088.             IWMHeaderInfo3 * This,
  6089.             /* [out] */ WORD *pcScripts);
  6090.         
  6091.         HRESULT ( STDMETHODCALLTYPE *GetScript )( 
  6092.             IWMHeaderInfo3 * This,
  6093.             /* [in] */ WORD wIndex,
  6094.             /* [size_is][out] */ WCHAR *pwszType,
  6095.             /* [out][in] */ WORD *pcchTypeLen,
  6096.             /* [size_is][out] */ WCHAR *pwszCommand,
  6097.             /* [out][in] */ WORD *pcchCommandLen,
  6098.             /* [out] */ QWORD *pcnsScriptTime);
  6099.         
  6100.         HRESULT ( STDMETHODCALLTYPE *AddScript )( 
  6101.             IWMHeaderInfo3 * This,
  6102.             /* [in] */ WCHAR *pwszType,
  6103.             /* [in] */ WCHAR *pwszCommand,
  6104.             /* [in] */ QWORD cnsScriptTime);
  6105.         
  6106.         HRESULT ( STDMETHODCALLTYPE *RemoveScript )( 
  6107.             IWMHeaderInfo3 * This,
  6108.             /* [in] */ WORD wIndex);
  6109.         
  6110.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfoCount )( 
  6111.             IWMHeaderInfo3 * This,
  6112.             /* [out] */ DWORD *pcCodecInfos);
  6113.         
  6114.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfo )( 
  6115.             IWMHeaderInfo3 * This,
  6116.             /* [in] */ DWORD wIndex,
  6117.             /* [out][in] */ WORD *pcchName,
  6118.             /* [size_is][out] */ WCHAR *pwszName,
  6119.             /* [out][in] */ WORD *pcchDescription,
  6120.             /* [size_is][out] */ WCHAR *pwszDescription,
  6121.             /* [out] */ WMT_CODEC_INFO_TYPE *pCodecType,
  6122.             /* [out][in] */ WORD *pcbCodecInfo,
  6123.             /* [size_is][out] */ BYTE *pbCodecInfo);
  6124.         
  6125.         HRESULT ( STDMETHODCALLTYPE *GetAttributeCountEx )( 
  6126.             IWMHeaderInfo3 * This,
  6127.             /* [in] */ WORD wStreamNum,
  6128.             /* [out] */ WORD *pcAttributes);
  6129.         
  6130.         HRESULT ( STDMETHODCALLTYPE *GetAttributeIndices )( 
  6131.             IWMHeaderInfo3 * This,
  6132.             /* [in] */ WORD wStreamNum,
  6133.             /* [in] */ LPCWSTR pwszName,
  6134.             /* [in] */ WORD *pwLangIndex,
  6135.             /* [size_is][out] */ WORD *pwIndices,
  6136.             /* [out][in] */ WORD *pwCount);
  6137.         
  6138.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByIndexEx )( 
  6139.             IWMHeaderInfo3 * This,
  6140.             /* [in] */ WORD wStreamNum,
  6141.             /* [in] */ WORD wIndex,
  6142.             /* [size_is][out] */ LPWSTR pwszName,
  6143.             /* [out][in] */ WORD *pwNameLen,
  6144.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  6145.             /* [out] */ WORD *pwLangIndex,
  6146.             /* [size_is][out] */ BYTE *pValue,
  6147.             /* [out][in] */ DWORD *pdwDataLength);
  6148.         
  6149.         HRESULT ( STDMETHODCALLTYPE *ModifyAttribute )( 
  6150.             IWMHeaderInfo3 * This,
  6151.             /* [in] */ WORD wStreamNum,
  6152.             /* [in] */ WORD wIndex,
  6153.             /* [in] */ WMT_ATTR_DATATYPE Type,
  6154.             /* [in] */ WORD wLangIndex,
  6155.             /* [size_is][in] */ const BYTE *pValue,
  6156.             /* [in] */ DWORD dwLength);
  6157.         
  6158.         HRESULT ( STDMETHODCALLTYPE *AddAttribute )( 
  6159.             IWMHeaderInfo3 * This,
  6160.             /* [in] */ WORD wStreamNum,
  6161.             /* [in] */ LPCWSTR pszName,
  6162.             /* [out] */ WORD *pwIndex,
  6163.             /* [in] */ WMT_ATTR_DATATYPE Type,
  6164.             /* [in] */ WORD wLangIndex,
  6165.             /* [size_is][in] */ const BYTE *pValue,
  6166.             /* [in] */ DWORD dwLength);
  6167.         
  6168.         HRESULT ( STDMETHODCALLTYPE *DeleteAttribute )( 
  6169.             IWMHeaderInfo3 * This,
  6170.             /* [in] */ WORD wStreamNum,
  6171.             /* [in] */ WORD wIndex);
  6172.         
  6173.         HRESULT ( STDMETHODCALLTYPE *AddCodecInfo )( 
  6174.             IWMHeaderInfo3 * This,
  6175.             /* [in] */ WCHAR *pwszName,
  6176.             /* [in] */ WCHAR *pwszDescription,
  6177.             /* [in] */ WMT_CODEC_INFO_TYPE codecType,
  6178.             /* [in] */ WORD cbCodecInfo,
  6179.             /* [size_is][in] */ BYTE *pbCodecInfo);
  6180.         
  6181.         END_INTERFACE
  6182.     } IWMHeaderInfo3Vtbl;
  6183.  
  6184.     interface IWMHeaderInfo3
  6185.     {
  6186.         CONST_VTBL struct IWMHeaderInfo3Vtbl *lpVtbl;
  6187.     };
  6188.  
  6189.     
  6190.  
  6191. #ifdef COBJMACROS
  6192.  
  6193.  
  6194. #define IWMHeaderInfo3_QueryInterface(This,riid,ppvObject)    \
  6195.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  6196.  
  6197. #define IWMHeaderInfo3_AddRef(This)    \
  6198.     (This)->lpVtbl -> AddRef(This)
  6199.  
  6200. #define IWMHeaderInfo3_Release(This)    \
  6201.     (This)->lpVtbl -> Release(This)
  6202.  
  6203.  
  6204. #define IWMHeaderInfo3_GetAttributeCount(This,wStreamNum,pcAttributes)    \
  6205.     (This)->lpVtbl -> GetAttributeCount(This,wStreamNum,pcAttributes)
  6206.  
  6207. #define IWMHeaderInfo3_GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)    \
  6208.     (This)->lpVtbl -> GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)
  6209.  
  6210. #define IWMHeaderInfo3_GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)    \
  6211.     (This)->lpVtbl -> GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)
  6212.  
  6213. #define IWMHeaderInfo3_SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)    \
  6214.     (This)->lpVtbl -> SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)
  6215.  
  6216. #define IWMHeaderInfo3_GetMarkerCount(This,pcMarkers)    \
  6217.     (This)->lpVtbl -> GetMarkerCount(This,pcMarkers)
  6218.  
  6219. #define IWMHeaderInfo3_GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)    \
  6220.     (This)->lpVtbl -> GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)
  6221.  
  6222. #define IWMHeaderInfo3_AddMarker(This,pwszMarkerName,cnsMarkerTime)    \
  6223.     (This)->lpVtbl -> AddMarker(This,pwszMarkerName,cnsMarkerTime)
  6224.  
  6225. #define IWMHeaderInfo3_RemoveMarker(This,wIndex)    \
  6226.     (This)->lpVtbl -> RemoveMarker(This,wIndex)
  6227.  
  6228. #define IWMHeaderInfo3_GetScriptCount(This,pcScripts)    \
  6229.     (This)->lpVtbl -> GetScriptCount(This,pcScripts)
  6230.  
  6231. #define IWMHeaderInfo3_GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)    \
  6232.     (This)->lpVtbl -> GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)
  6233.  
  6234. #define IWMHeaderInfo3_AddScript(This,pwszType,pwszCommand,cnsScriptTime)    \
  6235.     (This)->lpVtbl -> AddScript(This,pwszType,pwszCommand,cnsScriptTime)
  6236.  
  6237. #define IWMHeaderInfo3_RemoveScript(This,wIndex)    \
  6238.     (This)->lpVtbl -> RemoveScript(This,wIndex)
  6239.  
  6240.  
  6241. #define IWMHeaderInfo3_GetCodecInfoCount(This,pcCodecInfos)    \
  6242.     (This)->lpVtbl -> GetCodecInfoCount(This,pcCodecInfos)
  6243.  
  6244. #define IWMHeaderInfo3_GetCodecInfo(This,wIndex,pcchName,pwszName,pcchDescription,pwszDescription,pCodecType,pcbCodecInfo,pbCodecInfo)    \
  6245.     (This)->lpVtbl -> GetCodecInfo(This,wIndex,pcchName,pwszName,pcchDescription,pwszDescription,pCodecType,pcbCodecInfo,pbCodecInfo)
  6246.  
  6247.  
  6248. #define IWMHeaderInfo3_GetAttributeCountEx(This,wStreamNum,pcAttributes)    \
  6249.     (This)->lpVtbl -> GetAttributeCountEx(This,wStreamNum,pcAttributes)
  6250.  
  6251. #define IWMHeaderInfo3_GetAttributeIndices(This,wStreamNum,pwszName,pwLangIndex,pwIndices,pwCount)    \
  6252.     (This)->lpVtbl -> GetAttributeIndices(This,wStreamNum,pwszName,pwLangIndex,pwIndices,pwCount)
  6253.  
  6254. #define IWMHeaderInfo3_GetAttributeByIndexEx(This,wStreamNum,wIndex,pwszName,pwNameLen,pType,pwLangIndex,pValue,pdwDataLength)    \
  6255.     (This)->lpVtbl -> GetAttributeByIndexEx(This,wStreamNum,wIndex,pwszName,pwNameLen,pType,pwLangIndex,pValue,pdwDataLength)
  6256.  
  6257. #define IWMHeaderInfo3_ModifyAttribute(This,wStreamNum,wIndex,Type,wLangIndex,pValue,dwLength)    \
  6258.     (This)->lpVtbl -> ModifyAttribute(This,wStreamNum,wIndex,Type,wLangIndex,pValue,dwLength)
  6259.  
  6260. #define IWMHeaderInfo3_AddAttribute(This,wStreamNum,pszName,pwIndex,Type,wLangIndex,pValue,dwLength)    \
  6261.     (This)->lpVtbl -> AddAttribute(This,wStreamNum,pszName,pwIndex,Type,wLangIndex,pValue,dwLength)
  6262.  
  6263. #define IWMHeaderInfo3_DeleteAttribute(This,wStreamNum,wIndex)    \
  6264.     (This)->lpVtbl -> DeleteAttribute(This,wStreamNum,wIndex)
  6265.  
  6266. #define IWMHeaderInfo3_AddCodecInfo(This,pwszName,pwszDescription,codecType,cbCodecInfo,pbCodecInfo)    \
  6267.     (This)->lpVtbl -> AddCodecInfo(This,pwszName,pwszDescription,codecType,cbCodecInfo,pbCodecInfo)
  6268.  
  6269. #endif /* COBJMACROS */
  6270.  
  6271.  
  6272. #endif     /* C style interface */
  6273.  
  6274.  
  6275.  
  6276. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_GetAttributeCountEx_Proxy( 
  6277.     IWMHeaderInfo3 * This,
  6278.     /* [in] */ WORD wStreamNum,
  6279.     /* [out] */ WORD *pcAttributes);
  6280.  
  6281.  
  6282. void __RPC_STUB IWMHeaderInfo3_GetAttributeCountEx_Stub(
  6283.     IRpcStubBuffer *This,
  6284.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6285.     PRPC_MESSAGE _pRpcMessage,
  6286.     DWORD *_pdwStubPhase);
  6287.  
  6288.  
  6289. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_GetAttributeIndices_Proxy( 
  6290.     IWMHeaderInfo3 * This,
  6291.     /* [in] */ WORD wStreamNum,
  6292.     /* [in] */ LPCWSTR pwszName,
  6293.     /* [in] */ WORD *pwLangIndex,
  6294.     /* [size_is][out] */ WORD *pwIndices,
  6295.     /* [out][in] */ WORD *pwCount);
  6296.  
  6297.  
  6298. void __RPC_STUB IWMHeaderInfo3_GetAttributeIndices_Stub(
  6299.     IRpcStubBuffer *This,
  6300.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6301.     PRPC_MESSAGE _pRpcMessage,
  6302.     DWORD *_pdwStubPhase);
  6303.  
  6304.  
  6305. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_GetAttributeByIndexEx_Proxy( 
  6306.     IWMHeaderInfo3 * This,
  6307.     /* [in] */ WORD wStreamNum,
  6308.     /* [in] */ WORD wIndex,
  6309.     /* [size_is][out] */ LPWSTR pwszName,
  6310.     /* [out][in] */ WORD *pwNameLen,
  6311.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  6312.     /* [out] */ WORD *pwLangIndex,
  6313.     /* [size_is][out] */ BYTE *pValue,
  6314.     /* [out][in] */ DWORD *pdwDataLength);
  6315.  
  6316.  
  6317. void __RPC_STUB IWMHeaderInfo3_GetAttributeByIndexEx_Stub(
  6318.     IRpcStubBuffer *This,
  6319.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6320.     PRPC_MESSAGE _pRpcMessage,
  6321.     DWORD *_pdwStubPhase);
  6322.  
  6323.  
  6324. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_ModifyAttribute_Proxy( 
  6325.     IWMHeaderInfo3 * This,
  6326.     /* [in] */ WORD wStreamNum,
  6327.     /* [in] */ WORD wIndex,
  6328.     /* [in] */ WMT_ATTR_DATATYPE Type,
  6329.     /* [in] */ WORD wLangIndex,
  6330.     /* [size_is][in] */ const BYTE *pValue,
  6331.     /* [in] */ DWORD dwLength);
  6332.  
  6333.  
  6334. void __RPC_STUB IWMHeaderInfo3_ModifyAttribute_Stub(
  6335.     IRpcStubBuffer *This,
  6336.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6337.     PRPC_MESSAGE _pRpcMessage,
  6338.     DWORD *_pdwStubPhase);
  6339.  
  6340.  
  6341. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_AddAttribute_Proxy( 
  6342.     IWMHeaderInfo3 * This,
  6343.     /* [in] */ WORD wStreamNum,
  6344.     /* [in] */ LPCWSTR pszName,
  6345.     /* [out] */ WORD *pwIndex,
  6346.     /* [in] */ WMT_ATTR_DATATYPE Type,
  6347.     /* [in] */ WORD wLangIndex,
  6348.     /* [size_is][in] */ const BYTE *pValue,
  6349.     /* [in] */ DWORD dwLength);
  6350.  
  6351.  
  6352. void __RPC_STUB IWMHeaderInfo3_AddAttribute_Stub(
  6353.     IRpcStubBuffer *This,
  6354.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6355.     PRPC_MESSAGE _pRpcMessage,
  6356.     DWORD *_pdwStubPhase);
  6357.  
  6358.  
  6359. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_DeleteAttribute_Proxy( 
  6360.     IWMHeaderInfo3 * This,
  6361.     /* [in] */ WORD wStreamNum,
  6362.     /* [in] */ WORD wIndex);
  6363.  
  6364.  
  6365. void __RPC_STUB IWMHeaderInfo3_DeleteAttribute_Stub(
  6366.     IRpcStubBuffer *This,
  6367.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6368.     PRPC_MESSAGE _pRpcMessage,
  6369.     DWORD *_pdwStubPhase);
  6370.  
  6371.  
  6372. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_AddCodecInfo_Proxy( 
  6373.     IWMHeaderInfo3 * This,
  6374.     /* [in] */ WCHAR *pwszName,
  6375.     /* [in] */ WCHAR *pwszDescription,
  6376.     /* [in] */ WMT_CODEC_INFO_TYPE codecType,
  6377.     /* [in] */ WORD cbCodecInfo,
  6378.     /* [size_is][in] */ BYTE *pbCodecInfo);
  6379.  
  6380.  
  6381. void __RPC_STUB IWMHeaderInfo3_AddCodecInfo_Stub(
  6382.     IRpcStubBuffer *This,
  6383.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6384.     PRPC_MESSAGE _pRpcMessage,
  6385.     DWORD *_pdwStubPhase);
  6386.  
  6387.  
  6388.  
  6389. #endif     /* __IWMHeaderInfo3_INTERFACE_DEFINED__ */
  6390.  
  6391.  
  6392. #ifndef __IWMProfileManager_INTERFACE_DEFINED__
  6393. #define __IWMProfileManager_INTERFACE_DEFINED__
  6394.  
  6395. /* interface IWMProfileManager */
  6396. /* [local][unique][helpstring][uuid][object] */ 
  6397.  
  6398.  
  6399. EXTERN_C const IID IID_IWMProfileManager;
  6400.  
  6401. #if defined(__cplusplus) && !defined(CINTERFACE)
  6402.     
  6403.     MIDL_INTERFACE("d16679f2-6ca0-472d-8d31-2f5d55aee155")
  6404.     IWMProfileManager : public IUnknown
  6405.     {
  6406.     public:
  6407.         virtual HRESULT STDMETHODCALLTYPE CreateEmptyProfile( 
  6408.             /* [in] */ WMT_VERSION dwVersion,
  6409.             /* [out] */ IWMProfile **ppProfile) = 0;
  6410.         
  6411.         virtual HRESULT STDMETHODCALLTYPE LoadProfileByID( 
  6412.             /* [in] */ REFGUID guidProfile,
  6413.             /* [out] */ IWMProfile **ppProfile) = 0;
  6414.         
  6415.         virtual HRESULT STDMETHODCALLTYPE LoadProfileByData( 
  6416.             /* [in] */ const WCHAR *pwszProfile,
  6417.             /* [out] */ IWMProfile **ppProfile) = 0;
  6418.         
  6419.         virtual HRESULT STDMETHODCALLTYPE SaveProfile( 
  6420.             /* [in] */ IWMProfile *pIWMProfile,
  6421.             /* [in] */ WCHAR *pwszProfile,
  6422.             /* [out][in] */ DWORD *pdwLength) = 0;
  6423.         
  6424.         virtual HRESULT STDMETHODCALLTYPE GetSystemProfileCount( 
  6425.             /* [out] */ DWORD *pcProfiles) = 0;
  6426.         
  6427.         virtual HRESULT STDMETHODCALLTYPE LoadSystemProfile( 
  6428.             /* [in] */ DWORD dwProfileIndex,
  6429.             /* [out] */ IWMProfile **ppProfile) = 0;
  6430.         
  6431.     };
  6432.     
  6433. #else     /* C style interface */
  6434.  
  6435.     typedef struct IWMProfileManagerVtbl
  6436.     {
  6437.         BEGIN_INTERFACE
  6438.         
  6439.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  6440.             IWMProfileManager * This,
  6441.             /* [in] */ REFIID riid,
  6442.             /* [iid_is][out] */ void **ppvObject);
  6443.         
  6444.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  6445.             IWMProfileManager * This);
  6446.         
  6447.         ULONG ( STDMETHODCALLTYPE *Release )( 
  6448.             IWMProfileManager * This);
  6449.         
  6450.         HRESULT ( STDMETHODCALLTYPE *CreateEmptyProfile )( 
  6451.             IWMProfileManager * This,
  6452.             /* [in] */ WMT_VERSION dwVersion,
  6453.             /* [out] */ IWMProfile **ppProfile);
  6454.         
  6455.         HRESULT ( STDMETHODCALLTYPE *LoadProfileByID )( 
  6456.             IWMProfileManager * This,
  6457.             /* [in] */ REFGUID guidProfile,
  6458.             /* [out] */ IWMProfile **ppProfile);
  6459.         
  6460.         HRESULT ( STDMETHODCALLTYPE *LoadProfileByData )( 
  6461.             IWMProfileManager * This,
  6462.             /* [in] */ const WCHAR *pwszProfile,
  6463.             /* [out] */ IWMProfile **ppProfile);
  6464.         
  6465.         HRESULT ( STDMETHODCALLTYPE *SaveProfile )( 
  6466.             IWMProfileManager * This,
  6467.             /* [in] */ IWMProfile *pIWMProfile,
  6468.             /* [in] */ WCHAR *pwszProfile,
  6469.             /* [out][in] */ DWORD *pdwLength);
  6470.         
  6471.         HRESULT ( STDMETHODCALLTYPE *GetSystemProfileCount )( 
  6472.             IWMProfileManager * This,
  6473.             /* [out] */ DWORD *pcProfiles);
  6474.         
  6475.         HRESULT ( STDMETHODCALLTYPE *LoadSystemProfile )( 
  6476.             IWMProfileManager * This,
  6477.             /* [in] */ DWORD dwProfileIndex,
  6478.             /* [out] */ IWMProfile **ppProfile);
  6479.         
  6480.         END_INTERFACE
  6481.     } IWMProfileManagerVtbl;
  6482.  
  6483.     interface IWMProfileManager
  6484.     {
  6485.         CONST_VTBL struct IWMProfileManagerVtbl *lpVtbl;
  6486.     };
  6487.  
  6488.     
  6489.  
  6490. #ifdef COBJMACROS
  6491.  
  6492.  
  6493. #define IWMProfileManager_QueryInterface(This,riid,ppvObject)    \
  6494.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  6495.  
  6496. #define IWMProfileManager_AddRef(This)    \
  6497.     (This)->lpVtbl -> AddRef(This)
  6498.  
  6499. #define IWMProfileManager_Release(This)    \
  6500.     (This)->lpVtbl -> Release(This)
  6501.  
  6502.  
  6503. #define IWMProfileManager_CreateEmptyProfile(This,dwVersion,ppProfile)    \
  6504.     (This)->lpVtbl -> CreateEmptyProfile(This,dwVersion,ppProfile)
  6505.  
  6506. #define IWMProfileManager_LoadProfileByID(This,guidProfile,ppProfile)    \
  6507.     (This)->lpVtbl -> LoadProfileByID(This,guidProfile,ppProfile)
  6508.  
  6509. #define IWMProfileManager_LoadProfileByData(This,pwszProfile,ppProfile)    \
  6510.     (This)->lpVtbl -> LoadProfileByData(This,pwszProfile,ppProfile)
  6511.  
  6512. #define IWMProfileManager_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength)    \
  6513.     (This)->lpVtbl -> SaveProfile(This,pIWMProfile,pwszProfile,pdwLength)
  6514.  
  6515. #define IWMProfileManager_GetSystemProfileCount(This,pcProfiles)    \
  6516.     (This)->lpVtbl -> GetSystemProfileCount(This,pcProfiles)
  6517.  
  6518. #define IWMProfileManager_LoadSystemProfile(This,dwProfileIndex,ppProfile)    \
  6519.     (This)->lpVtbl -> LoadSystemProfile(This,dwProfileIndex,ppProfile)
  6520.  
  6521. #endif /* COBJMACROS */
  6522.  
  6523.  
  6524. #endif     /* C style interface */
  6525.  
  6526.  
  6527.  
  6528. HRESULT STDMETHODCALLTYPE IWMProfileManager_CreateEmptyProfile_Proxy( 
  6529.     IWMProfileManager * This,
  6530.     /* [in] */ WMT_VERSION dwVersion,
  6531.     /* [out] */ IWMProfile **ppProfile);
  6532.  
  6533.  
  6534. void __RPC_STUB IWMProfileManager_CreateEmptyProfile_Stub(
  6535.     IRpcStubBuffer *This,
  6536.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6537.     PRPC_MESSAGE _pRpcMessage,
  6538.     DWORD *_pdwStubPhase);
  6539.  
  6540.  
  6541. HRESULT STDMETHODCALLTYPE IWMProfileManager_LoadProfileByID_Proxy( 
  6542.     IWMProfileManager * This,
  6543.     /* [in] */ REFGUID guidProfile,
  6544.     /* [out] */ IWMProfile **ppProfile);
  6545.  
  6546.  
  6547. void __RPC_STUB IWMProfileManager_LoadProfileByID_Stub(
  6548.     IRpcStubBuffer *This,
  6549.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6550.     PRPC_MESSAGE _pRpcMessage,
  6551.     DWORD *_pdwStubPhase);
  6552.  
  6553.  
  6554. HRESULT STDMETHODCALLTYPE IWMProfileManager_LoadProfileByData_Proxy( 
  6555.     IWMProfileManager * This,
  6556.     /* [in] */ const WCHAR *pwszProfile,
  6557.     /* [out] */ IWMProfile **ppProfile);
  6558.  
  6559.  
  6560. void __RPC_STUB IWMProfileManager_LoadProfileByData_Stub(
  6561.     IRpcStubBuffer *This,
  6562.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6563.     PRPC_MESSAGE _pRpcMessage,
  6564.     DWORD *_pdwStubPhase);
  6565.  
  6566.  
  6567. HRESULT STDMETHODCALLTYPE IWMProfileManager_SaveProfile_Proxy( 
  6568.     IWMProfileManager * This,
  6569.     /* [in] */ IWMProfile *pIWMProfile,
  6570.     /* [in] */ WCHAR *pwszProfile,
  6571.     /* [out][in] */ DWORD *pdwLength);
  6572.  
  6573.  
  6574. void __RPC_STUB IWMProfileManager_SaveProfile_Stub(
  6575.     IRpcStubBuffer *This,
  6576.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6577.     PRPC_MESSAGE _pRpcMessage,
  6578.     DWORD *_pdwStubPhase);
  6579.  
  6580.  
  6581. HRESULT STDMETHODCALLTYPE IWMProfileManager_GetSystemProfileCount_Proxy( 
  6582.     IWMProfileManager * This,
  6583.     /* [out] */ DWORD *pcProfiles);
  6584.  
  6585.  
  6586. void __RPC_STUB IWMProfileManager_GetSystemProfileCount_Stub(
  6587.     IRpcStubBuffer *This,
  6588.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6589.     PRPC_MESSAGE _pRpcMessage,
  6590.     DWORD *_pdwStubPhase);
  6591.  
  6592.  
  6593. HRESULT STDMETHODCALLTYPE IWMProfileManager_LoadSystemProfile_Proxy( 
  6594.     IWMProfileManager * This,
  6595.     /* [in] */ DWORD dwProfileIndex,
  6596.     /* [out] */ IWMProfile **ppProfile);
  6597.  
  6598.  
  6599. void __RPC_STUB IWMProfileManager_LoadSystemProfile_Stub(
  6600.     IRpcStubBuffer *This,
  6601.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6602.     PRPC_MESSAGE _pRpcMessage,
  6603.     DWORD *_pdwStubPhase);
  6604.  
  6605.  
  6606.  
  6607. #endif     /* __IWMProfileManager_INTERFACE_DEFINED__ */
  6608.  
  6609.  
  6610. #ifndef __IWMProfileManager2_INTERFACE_DEFINED__
  6611. #define __IWMProfileManager2_INTERFACE_DEFINED__
  6612.  
  6613. /* interface IWMProfileManager2 */
  6614. /* [local][unique][helpstring][uuid][object] */ 
  6615.  
  6616.  
  6617. EXTERN_C const IID IID_IWMProfileManager2;
  6618.  
  6619. #if defined(__cplusplus) && !defined(CINTERFACE)
  6620.     
  6621.     MIDL_INTERFACE("7A924E51-73C1-494d-8019-23D37ED9B89A")
  6622.     IWMProfileManager2 : public IWMProfileManager
  6623.     {
  6624.     public:
  6625.         virtual HRESULT STDMETHODCALLTYPE GetSystemProfileVersion( 
  6626.             WMT_VERSION *pdwVersion) = 0;
  6627.         
  6628.         virtual HRESULT STDMETHODCALLTYPE SetSystemProfileVersion( 
  6629.             WMT_VERSION dwVersion) = 0;
  6630.         
  6631.     };
  6632.     
  6633. #else     /* C style interface */
  6634.  
  6635.     typedef struct IWMProfileManager2Vtbl
  6636.     {
  6637.         BEGIN_INTERFACE
  6638.         
  6639.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  6640.             IWMProfileManager2 * This,
  6641.             /* [in] */ REFIID riid,
  6642.             /* [iid_is][out] */ void **ppvObject);
  6643.         
  6644.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  6645.             IWMProfileManager2 * This);
  6646.         
  6647.         ULONG ( STDMETHODCALLTYPE *Release )( 
  6648.             IWMProfileManager2 * This);
  6649.         
  6650.         HRESULT ( STDMETHODCALLTYPE *CreateEmptyProfile )( 
  6651.             IWMProfileManager2 * This,
  6652.             /* [in] */ WMT_VERSION dwVersion,
  6653.             /* [out] */ IWMProfile **ppProfile);
  6654.         
  6655.         HRESULT ( STDMETHODCALLTYPE *LoadProfileByID )( 
  6656.             IWMProfileManager2 * This,
  6657.             /* [in] */ REFGUID guidProfile,
  6658.             /* [out] */ IWMProfile **ppProfile);
  6659.         
  6660.         HRESULT ( STDMETHODCALLTYPE *LoadProfileByData )( 
  6661.             IWMProfileManager2 * This,
  6662.             /* [in] */ const WCHAR *pwszProfile,
  6663.             /* [out] */ IWMProfile **ppProfile);
  6664.         
  6665.         HRESULT ( STDMETHODCALLTYPE *SaveProfile )( 
  6666.             IWMProfileManager2 * This,
  6667.             /* [in] */ IWMProfile *pIWMProfile,
  6668.             /* [in] */ WCHAR *pwszProfile,
  6669.             /* [out][in] */ DWORD *pdwLength);
  6670.         
  6671.         HRESULT ( STDMETHODCALLTYPE *GetSystemProfileCount )( 
  6672.             IWMProfileManager2 * This,
  6673.             /* [out] */ DWORD *pcProfiles);
  6674.         
  6675.         HRESULT ( STDMETHODCALLTYPE *LoadSystemProfile )( 
  6676.             IWMProfileManager2 * This,
  6677.             /* [in] */ DWORD dwProfileIndex,
  6678.             /* [out] */ IWMProfile **ppProfile);
  6679.         
  6680.         HRESULT ( STDMETHODCALLTYPE *GetSystemProfileVersion )( 
  6681.             IWMProfileManager2 * This,
  6682.             WMT_VERSION *pdwVersion);
  6683.         
  6684.         HRESULT ( STDMETHODCALLTYPE *SetSystemProfileVersion )( 
  6685.             IWMProfileManager2 * This,
  6686.             WMT_VERSION dwVersion);
  6687.         
  6688.         END_INTERFACE
  6689.     } IWMProfileManager2Vtbl;
  6690.  
  6691.     interface IWMProfileManager2
  6692.     {
  6693.         CONST_VTBL struct IWMProfileManager2Vtbl *lpVtbl;
  6694.     };
  6695.  
  6696.     
  6697.  
  6698. #ifdef COBJMACROS
  6699.  
  6700.  
  6701. #define IWMProfileManager2_QueryInterface(This,riid,ppvObject)    \
  6702.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  6703.  
  6704. #define IWMProfileManager2_AddRef(This)    \
  6705.     (This)->lpVtbl -> AddRef(This)
  6706.  
  6707. #define IWMProfileManager2_Release(This)    \
  6708.     (This)->lpVtbl -> Release(This)
  6709.  
  6710.  
  6711. #define IWMProfileManager2_CreateEmptyProfile(This,dwVersion,ppProfile)    \
  6712.     (This)->lpVtbl -> CreateEmptyProfile(This,dwVersion,ppProfile)
  6713.  
  6714. #define IWMProfileManager2_LoadProfileByID(This,guidProfile,ppProfile)    \
  6715.     (This)->lpVtbl -> LoadProfileByID(This,guidProfile,ppProfile)
  6716.  
  6717. #define IWMProfileManager2_LoadProfileByData(This,pwszProfile,ppProfile)    \
  6718.     (This)->lpVtbl -> LoadProfileByData(This,pwszProfile,ppProfile)
  6719.  
  6720. #define IWMProfileManager2_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength)    \
  6721.     (This)->lpVtbl -> SaveProfile(This,pIWMProfile,pwszProfile,pdwLength)
  6722.  
  6723. #define IWMProfileManager2_GetSystemProfileCount(This,pcProfiles)    \
  6724.     (This)->lpVtbl -> GetSystemProfileCount(This,pcProfiles)
  6725.  
  6726. #define IWMProfileManager2_LoadSystemProfile(This,dwProfileIndex,ppProfile)    \
  6727.     (This)->lpVtbl -> LoadSystemProfile(This,dwProfileIndex,ppProfile)
  6728.  
  6729.  
  6730. #define IWMProfileManager2_GetSystemProfileVersion(This,pdwVersion)    \
  6731.     (This)->lpVtbl -> GetSystemProfileVersion(This,pdwVersion)
  6732.  
  6733. #define IWMProfileManager2_SetSystemProfileVersion(This,dwVersion)    \
  6734.     (This)->lpVtbl -> SetSystemProfileVersion(This,dwVersion)
  6735.  
  6736. #endif /* COBJMACROS */
  6737.  
  6738.  
  6739. #endif     /* C style interface */
  6740.  
  6741.  
  6742.  
  6743. HRESULT STDMETHODCALLTYPE IWMProfileManager2_GetSystemProfileVersion_Proxy( 
  6744.     IWMProfileManager2 * This,
  6745.     WMT_VERSION *pdwVersion);
  6746.  
  6747.  
  6748. void __RPC_STUB IWMProfileManager2_GetSystemProfileVersion_Stub(
  6749.     IRpcStubBuffer *This,
  6750.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6751.     PRPC_MESSAGE _pRpcMessage,
  6752.     DWORD *_pdwStubPhase);
  6753.  
  6754.  
  6755. HRESULT STDMETHODCALLTYPE IWMProfileManager2_SetSystemProfileVersion_Proxy( 
  6756.     IWMProfileManager2 * This,
  6757.     WMT_VERSION dwVersion);
  6758.  
  6759.  
  6760. void __RPC_STUB IWMProfileManager2_SetSystemProfileVersion_Stub(
  6761.     IRpcStubBuffer *This,
  6762.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6763.     PRPC_MESSAGE _pRpcMessage,
  6764.     DWORD *_pdwStubPhase);
  6765.  
  6766.  
  6767.  
  6768. #endif     /* __IWMProfileManager2_INTERFACE_DEFINED__ */
  6769.  
  6770.  
  6771. #ifndef __IWMProfileManagerLanguage_INTERFACE_DEFINED__
  6772. #define __IWMProfileManagerLanguage_INTERFACE_DEFINED__
  6773.  
  6774. /* interface IWMProfileManagerLanguage */
  6775. /* [local][unique][helpstring][uuid][object] */ 
  6776.  
  6777.  
  6778. EXTERN_C const IID IID_IWMProfileManagerLanguage;
  6779.  
  6780. #if defined(__cplusplus) && !defined(CINTERFACE)
  6781.     
  6782.     MIDL_INTERFACE("BA4DCC78-7EE0-4ab8-B27A-DBCE8BC51454")
  6783.     IWMProfileManagerLanguage : public IUnknown
  6784.     {
  6785.     public:
  6786.         virtual HRESULT STDMETHODCALLTYPE GetUserLanguageID( 
  6787.             WORD *wLangID) = 0;
  6788.         
  6789.         virtual HRESULT STDMETHODCALLTYPE SetUserLanguageID( 
  6790.             WORD wLangID) = 0;
  6791.         
  6792.     };
  6793.     
  6794. #else     /* C style interface */
  6795.  
  6796.     typedef struct IWMProfileManagerLanguageVtbl
  6797.     {
  6798.         BEGIN_INTERFACE
  6799.         
  6800.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  6801.             IWMProfileManagerLanguage * This,
  6802.             /* [in] */ REFIID riid,
  6803.             /* [iid_is][out] */ void **ppvObject);
  6804.         
  6805.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  6806.             IWMProfileManagerLanguage * This);
  6807.         
  6808.         ULONG ( STDMETHODCALLTYPE *Release )( 
  6809.             IWMProfileManagerLanguage * This);
  6810.         
  6811.         HRESULT ( STDMETHODCALLTYPE *GetUserLanguageID )( 
  6812.             IWMProfileManagerLanguage * This,
  6813.             WORD *wLangID);
  6814.         
  6815.         HRESULT ( STDMETHODCALLTYPE *SetUserLanguageID )( 
  6816.             IWMProfileManagerLanguage * This,
  6817.             WORD wLangID);
  6818.         
  6819.         END_INTERFACE
  6820.     } IWMProfileManagerLanguageVtbl;
  6821.  
  6822.     interface IWMProfileManagerLanguage
  6823.     {
  6824.         CONST_VTBL struct IWMProfileManagerLanguageVtbl *lpVtbl;
  6825.     };
  6826.  
  6827.     
  6828.  
  6829. #ifdef COBJMACROS
  6830.  
  6831.  
  6832. #define IWMProfileManagerLanguage_QueryInterface(This,riid,ppvObject)    \
  6833.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  6834.  
  6835. #define IWMProfileManagerLanguage_AddRef(This)    \
  6836.     (This)->lpVtbl -> AddRef(This)
  6837.  
  6838. #define IWMProfileManagerLanguage_Release(This)    \
  6839.     (This)->lpVtbl -> Release(This)
  6840.  
  6841.  
  6842. #define IWMProfileManagerLanguage_GetUserLanguageID(This,wLangID)    \
  6843.     (This)->lpVtbl -> GetUserLanguageID(This,wLangID)
  6844.  
  6845. #define IWMProfileManagerLanguage_SetUserLanguageID(This,wLangID)    \
  6846.     (This)->lpVtbl -> SetUserLanguageID(This,wLangID)
  6847.  
  6848. #endif /* COBJMACROS */
  6849.  
  6850.  
  6851. #endif     /* C style interface */
  6852.  
  6853.  
  6854.  
  6855. HRESULT STDMETHODCALLTYPE IWMProfileManagerLanguage_GetUserLanguageID_Proxy( 
  6856.     IWMProfileManagerLanguage * This,
  6857.     WORD *wLangID);
  6858.  
  6859.  
  6860. void __RPC_STUB IWMProfileManagerLanguage_GetUserLanguageID_Stub(
  6861.     IRpcStubBuffer *This,
  6862.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6863.     PRPC_MESSAGE _pRpcMessage,
  6864.     DWORD *_pdwStubPhase);
  6865.  
  6866.  
  6867. HRESULT STDMETHODCALLTYPE IWMProfileManagerLanguage_SetUserLanguageID_Proxy( 
  6868.     IWMProfileManagerLanguage * This,
  6869.     WORD wLangID);
  6870.  
  6871.  
  6872. void __RPC_STUB IWMProfileManagerLanguage_SetUserLanguageID_Stub(
  6873.     IRpcStubBuffer *This,
  6874.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6875.     PRPC_MESSAGE _pRpcMessage,
  6876.     DWORD *_pdwStubPhase);
  6877.  
  6878.  
  6879.  
  6880. #endif     /* __IWMProfileManagerLanguage_INTERFACE_DEFINED__ */
  6881.  
  6882.  
  6883. #ifndef __IWMProfile_INTERFACE_DEFINED__
  6884. #define __IWMProfile_INTERFACE_DEFINED__
  6885.  
  6886. /* interface IWMProfile */
  6887. /* [local][unique][helpstring][uuid][object] */ 
  6888.  
  6889.  
  6890. EXTERN_C const IID IID_IWMProfile;
  6891.  
  6892. #if defined(__cplusplus) && !defined(CINTERFACE)
  6893.     
  6894.     MIDL_INTERFACE("96406BDB-2B2B-11d3-B36B-00C04F6108FF")
  6895.     IWMProfile : public IUnknown
  6896.     {
  6897.     public:
  6898.         virtual HRESULT STDMETHODCALLTYPE GetVersion( 
  6899.             /* [out] */ WMT_VERSION *pdwVersion) = 0;
  6900.         
  6901.         virtual HRESULT STDMETHODCALLTYPE GetName( 
  6902.             /* [size_is][out] */ WCHAR *pwszName,
  6903.             /* [out][in] */ DWORD *pcchName) = 0;
  6904.         
  6905.         virtual HRESULT STDMETHODCALLTYPE SetName( 
  6906.             /* [in] */ const WCHAR *pwszName) = 0;
  6907.         
  6908.         virtual HRESULT STDMETHODCALLTYPE GetDescription( 
  6909.             /* [size_is][out] */ WCHAR *pwszDescription,
  6910.             /* [out][in] */ DWORD *pcchDescription) = 0;
  6911.         
  6912.         virtual HRESULT STDMETHODCALLTYPE SetDescription( 
  6913.             /* [in] */ const WCHAR *pwszDescription) = 0;
  6914.         
  6915.         virtual HRESULT STDMETHODCALLTYPE GetStreamCount( 
  6916.             /* [out] */ DWORD *pcStreams) = 0;
  6917.         
  6918.         virtual HRESULT STDMETHODCALLTYPE GetStream( 
  6919.             /* [in] */ DWORD dwStreamIndex,
  6920.             /* [out] */ IWMStreamConfig **ppConfig) = 0;
  6921.         
  6922.         virtual HRESULT STDMETHODCALLTYPE GetStreamByNumber( 
  6923.             /* [in] */ WORD wStreamNum,
  6924.             /* [out] */ IWMStreamConfig **ppConfig) = 0;
  6925.         
  6926.         virtual HRESULT STDMETHODCALLTYPE RemoveStream( 
  6927.             /* [in] */ IWMStreamConfig *pConfig) = 0;
  6928.         
  6929.         virtual HRESULT STDMETHODCALLTYPE RemoveStreamByNumber( 
  6930.             /* [in] */ WORD wStreamNum) = 0;
  6931.         
  6932.         virtual HRESULT STDMETHODCALLTYPE AddStream( 
  6933.             /* [in] */ IWMStreamConfig *pConfig) = 0;
  6934.         
  6935.         virtual HRESULT STDMETHODCALLTYPE ReconfigStream( 
  6936.             /* [in] */ IWMStreamConfig *pConfig) = 0;
  6937.         
  6938.         virtual HRESULT STDMETHODCALLTYPE CreateNewStream( 
  6939.             /* [in] */ REFGUID guidStreamType,
  6940.             /* [out] */ IWMStreamConfig **ppConfig) = 0;
  6941.         
  6942.         virtual HRESULT STDMETHODCALLTYPE GetMutualExclusionCount( 
  6943.             /* [out] */ DWORD *pcME) = 0;
  6944.         
  6945.         virtual HRESULT STDMETHODCALLTYPE GetMutualExclusion( 
  6946.             /* [in] */ DWORD dwMEIndex,
  6947.             /* [out] */ IWMMutualExclusion **ppME) = 0;
  6948.         
  6949.         virtual HRESULT STDMETHODCALLTYPE RemoveMutualExclusion( 
  6950.             /* [in] */ IWMMutualExclusion *pME) = 0;
  6951.         
  6952.         virtual HRESULT STDMETHODCALLTYPE AddMutualExclusion( 
  6953.             /* [in] */ IWMMutualExclusion *pME) = 0;
  6954.         
  6955.         virtual HRESULT STDMETHODCALLTYPE CreateNewMutualExclusion( 
  6956.             /* [out] */ IWMMutualExclusion **ppME) = 0;
  6957.         
  6958.     };
  6959.     
  6960. #else     /* C style interface */
  6961.  
  6962.     typedef struct IWMProfileVtbl
  6963.     {
  6964.         BEGIN_INTERFACE
  6965.         
  6966.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  6967.             IWMProfile * This,
  6968.             /* [in] */ REFIID riid,
  6969.             /* [iid_is][out] */ void **ppvObject);
  6970.         
  6971.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  6972.             IWMProfile * This);
  6973.         
  6974.         ULONG ( STDMETHODCALLTYPE *Release )( 
  6975.             IWMProfile * This);
  6976.         
  6977.         HRESULT ( STDMETHODCALLTYPE *GetVersion )( 
  6978.             IWMProfile * This,
  6979.             /* [out] */ WMT_VERSION *pdwVersion);
  6980.         
  6981.         HRESULT ( STDMETHODCALLTYPE *GetName )( 
  6982.             IWMProfile * This,
  6983.             /* [size_is][out] */ WCHAR *pwszName,
  6984.             /* [out][in] */ DWORD *pcchName);
  6985.         
  6986.         HRESULT ( STDMETHODCALLTYPE *SetName )( 
  6987.             IWMProfile * This,
  6988.             /* [in] */ const WCHAR *pwszName);
  6989.         
  6990.         HRESULT ( STDMETHODCALLTYPE *GetDescription )( 
  6991.             IWMProfile * This,
  6992.             /* [size_is][out] */ WCHAR *pwszDescription,
  6993.             /* [out][in] */ DWORD *pcchDescription);
  6994.         
  6995.         HRESULT ( STDMETHODCALLTYPE *SetDescription )( 
  6996.             IWMProfile * This,
  6997.             /* [in] */ const WCHAR *pwszDescription);
  6998.         
  6999.         HRESULT ( STDMETHODCALLTYPE *GetStreamCount )( 
  7000.             IWMProfile * This,
  7001.             /* [out] */ DWORD *pcStreams);
  7002.         
  7003.         HRESULT ( STDMETHODCALLTYPE *GetStream )( 
  7004.             IWMProfile * This,
  7005.             /* [in] */ DWORD dwStreamIndex,
  7006.             /* [out] */ IWMStreamConfig **ppConfig);
  7007.         
  7008.         HRESULT ( STDMETHODCALLTYPE *GetStreamByNumber )( 
  7009.             IWMProfile * This,
  7010.             /* [in] */ WORD wStreamNum,
  7011.             /* [out] */ IWMStreamConfig **ppConfig);
  7012.         
  7013.         HRESULT ( STDMETHODCALLTYPE *RemoveStream )( 
  7014.             IWMProfile * This,
  7015.             /* [in] */ IWMStreamConfig *pConfig);
  7016.         
  7017.         HRESULT ( STDMETHODCALLTYPE *RemoveStreamByNumber )( 
  7018.             IWMProfile * This,
  7019.             /* [in] */ WORD wStreamNum);
  7020.         
  7021.         HRESULT ( STDMETHODCALLTYPE *AddStream )( 
  7022.             IWMProfile * This,
  7023.             /* [in] */ IWMStreamConfig *pConfig);
  7024.         
  7025.         HRESULT ( STDMETHODCALLTYPE *ReconfigStream )( 
  7026.             IWMProfile * This,
  7027.             /* [in] */ IWMStreamConfig *pConfig);
  7028.         
  7029.         HRESULT ( STDMETHODCALLTYPE *CreateNewStream )( 
  7030.             IWMProfile * This,
  7031.             /* [in] */ REFGUID guidStreamType,
  7032.             /* [out] */ IWMStreamConfig **ppConfig);
  7033.         
  7034.         HRESULT ( STDMETHODCALLTYPE *GetMutualExclusionCount )( 
  7035.             IWMProfile * This,
  7036.             /* [out] */ DWORD *pcME);
  7037.         
  7038.         HRESULT ( STDMETHODCALLTYPE *GetMutualExclusion )( 
  7039.             IWMProfile * This,
  7040.             /* [in] */ DWORD dwMEIndex,
  7041.             /* [out] */ IWMMutualExclusion **ppME);
  7042.         
  7043.         HRESULT ( STDMETHODCALLTYPE *RemoveMutualExclusion )( 
  7044.             IWMProfile * This,
  7045.             /* [in] */ IWMMutualExclusion *pME);
  7046.         
  7047.         HRESULT ( STDMETHODCALLTYPE *AddMutualExclusion )( 
  7048.             IWMProfile * This,
  7049.             /* [in] */ IWMMutualExclusion *pME);
  7050.         
  7051.         HRESULT ( STDMETHODCALLTYPE *CreateNewMutualExclusion )( 
  7052.             IWMProfile * This,
  7053.             /* [out] */ IWMMutualExclusion **ppME);
  7054.         
  7055.         END_INTERFACE
  7056.     } IWMProfileVtbl;
  7057.  
  7058.     interface IWMProfile
  7059.     {
  7060.         CONST_VTBL struct IWMProfileVtbl *lpVtbl;
  7061.     };
  7062.  
  7063.     
  7064.  
  7065. #ifdef COBJMACROS
  7066.  
  7067.  
  7068. #define IWMProfile_QueryInterface(This,riid,ppvObject)    \
  7069.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  7070.  
  7071. #define IWMProfile_AddRef(This)    \
  7072.     (This)->lpVtbl -> AddRef(This)
  7073.  
  7074. #define IWMProfile_Release(This)    \
  7075.     (This)->lpVtbl -> Release(This)
  7076.  
  7077.  
  7078. #define IWMProfile_GetVersion(This,pdwVersion)    \
  7079.     (This)->lpVtbl -> GetVersion(This,pdwVersion)
  7080.  
  7081. #define IWMProfile_GetName(This,pwszName,pcchName)    \
  7082.     (This)->lpVtbl -> GetName(This,pwszName,pcchName)
  7083.  
  7084. #define IWMProfile_SetName(This,pwszName)    \
  7085.     (This)->lpVtbl -> SetName(This,pwszName)
  7086.  
  7087. #define IWMProfile_GetDescription(This,pwszDescription,pcchDescription)    \
  7088.     (This)->lpVtbl -> GetDescription(This,pwszDescription,pcchDescription)
  7089.  
  7090. #define IWMProfile_SetDescription(This,pwszDescription)    \
  7091.     (This)->lpVtbl -> SetDescription(This,pwszDescription)
  7092.  
  7093. #define IWMProfile_GetStreamCount(This,pcStreams)    \
  7094.     (This)->lpVtbl -> GetStreamCount(This,pcStreams)
  7095.  
  7096. #define IWMProfile_GetStream(This,dwStreamIndex,ppConfig)    \
  7097.     (This)->lpVtbl -> GetStream(This,dwStreamIndex,ppConfig)
  7098.  
  7099. #define IWMProfile_GetStreamByNumber(This,wStreamNum,ppConfig)    \
  7100.     (This)->lpVtbl -> GetStreamByNumber(This,wStreamNum,ppConfig)
  7101.  
  7102. #define IWMProfile_RemoveStream(This,pConfig)    \
  7103.     (This)->lpVtbl -> RemoveStream(This,pConfig)
  7104.  
  7105. #define IWMProfile_RemoveStreamByNumber(This,wStreamNum)    \
  7106.     (This)->lpVtbl -> RemoveStreamByNumber(This,wStreamNum)
  7107.  
  7108. #define IWMProfile_AddStream(This,pConfig)    \
  7109.     (This)->lpVtbl -> AddStream(This,pConfig)
  7110.  
  7111. #define IWMProfile_ReconfigStream(This,pConfig)    \
  7112.     (This)->lpVtbl -> ReconfigStream(This,pConfig)
  7113.  
  7114. #define IWMProfile_CreateNewStream(This,guidStreamType,ppConfig)    \
  7115.     (This)->lpVtbl -> CreateNewStream(This,guidStreamType,ppConfig)
  7116.  
  7117. #define IWMProfile_GetMutualExclusionCount(This,pcME)    \
  7118.     (This)->lpVtbl -> GetMutualExclusionCount(This,pcME)
  7119.  
  7120. #define IWMProfile_GetMutualExclusion(This,dwMEIndex,ppME)    \
  7121.     (This)->lpVtbl -> GetMutualExclusion(This,dwMEIndex,ppME)
  7122.  
  7123. #define IWMProfile_RemoveMutualExclusion(This,pME)    \
  7124.     (This)->lpVtbl -> RemoveMutualExclusion(This,pME)
  7125.  
  7126. #define IWMProfile_AddMutualExclusion(This,pME)    \
  7127.     (This)->lpVtbl -> AddMutualExclusion(This,pME)
  7128.  
  7129. #define IWMProfile_CreateNewMutualExclusion(This,ppME)    \
  7130.     (This)->lpVtbl -> CreateNewMutualExclusion(This,ppME)
  7131.  
  7132. #endif /* COBJMACROS */
  7133.  
  7134.  
  7135. #endif     /* C style interface */
  7136.  
  7137.  
  7138.  
  7139. HRESULT STDMETHODCALLTYPE IWMProfile_GetVersion_Proxy( 
  7140.     IWMProfile * This,
  7141.     /* [out] */ WMT_VERSION *pdwVersion);
  7142.  
  7143.  
  7144. void __RPC_STUB IWMProfile_GetVersion_Stub(
  7145.     IRpcStubBuffer *This,
  7146.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7147.     PRPC_MESSAGE _pRpcMessage,
  7148.     DWORD *_pdwStubPhase);
  7149.  
  7150.  
  7151. HRESULT STDMETHODCALLTYPE IWMProfile_GetName_Proxy( 
  7152.     IWMProfile * This,
  7153.     /* [size_is][out] */ WCHAR *pwszName,
  7154.     /* [out][in] */ DWORD *pcchName);
  7155.  
  7156.  
  7157. void __RPC_STUB IWMProfile_GetName_Stub(
  7158.     IRpcStubBuffer *This,
  7159.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7160.     PRPC_MESSAGE _pRpcMessage,
  7161.     DWORD *_pdwStubPhase);
  7162.  
  7163.  
  7164. HRESULT STDMETHODCALLTYPE IWMProfile_SetName_Proxy( 
  7165.     IWMProfile * This,
  7166.     /* [in] */ const WCHAR *pwszName);
  7167.  
  7168.  
  7169. void __RPC_STUB IWMProfile_SetName_Stub(
  7170.     IRpcStubBuffer *This,
  7171.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7172.     PRPC_MESSAGE _pRpcMessage,
  7173.     DWORD *_pdwStubPhase);
  7174.  
  7175.  
  7176. HRESULT STDMETHODCALLTYPE IWMProfile_GetDescription_Proxy( 
  7177.     IWMProfile * This,
  7178.     /* [size_is][out] */ WCHAR *pwszDescription,
  7179.     /* [out][in] */ DWORD *pcchDescription);
  7180.  
  7181.  
  7182. void __RPC_STUB IWMProfile_GetDescription_Stub(
  7183.     IRpcStubBuffer *This,
  7184.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7185.     PRPC_MESSAGE _pRpcMessage,
  7186.     DWORD *_pdwStubPhase);
  7187.  
  7188.  
  7189. HRESULT STDMETHODCALLTYPE IWMProfile_SetDescription_Proxy( 
  7190.     IWMProfile * This,
  7191.     /* [in] */ const WCHAR *pwszDescription);
  7192.  
  7193.  
  7194. void __RPC_STUB IWMProfile_SetDescription_Stub(
  7195.     IRpcStubBuffer *This,
  7196.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7197.     PRPC_MESSAGE _pRpcMessage,
  7198.     DWORD *_pdwStubPhase);
  7199.  
  7200.  
  7201. HRESULT STDMETHODCALLTYPE IWMProfile_GetStreamCount_Proxy( 
  7202.     IWMProfile * This,
  7203.     /* [out] */ DWORD *pcStreams);
  7204.  
  7205.  
  7206. void __RPC_STUB IWMProfile_GetStreamCount_Stub(
  7207.     IRpcStubBuffer *This,
  7208.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7209.     PRPC_MESSAGE _pRpcMessage,
  7210.     DWORD *_pdwStubPhase);
  7211.  
  7212.  
  7213. HRESULT STDMETHODCALLTYPE IWMProfile_GetStream_Proxy( 
  7214.     IWMProfile * This,
  7215.     /* [in] */ DWORD dwStreamIndex,
  7216.     /* [out] */ IWMStreamConfig **ppConfig);
  7217.  
  7218.  
  7219. void __RPC_STUB IWMProfile_GetStream_Stub(
  7220.     IRpcStubBuffer *This,
  7221.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7222.     PRPC_MESSAGE _pRpcMessage,
  7223.     DWORD *_pdwStubPhase);
  7224.  
  7225.  
  7226. HRESULT STDMETHODCALLTYPE IWMProfile_GetStreamByNumber_Proxy( 
  7227.     IWMProfile * This,
  7228.     /* [in] */ WORD wStreamNum,
  7229.     /* [out] */ IWMStreamConfig **ppConfig);
  7230.  
  7231.  
  7232. void __RPC_STUB IWMProfile_GetStreamByNumber_Stub(
  7233.     IRpcStubBuffer *This,
  7234.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7235.     PRPC_MESSAGE _pRpcMessage,
  7236.     DWORD *_pdwStubPhase);
  7237.  
  7238.  
  7239. HRESULT STDMETHODCALLTYPE IWMProfile_RemoveStream_Proxy( 
  7240.     IWMProfile * This,
  7241.     /* [in] */ IWMStreamConfig *pConfig);
  7242.  
  7243.  
  7244. void __RPC_STUB IWMProfile_RemoveStream_Stub(
  7245.     IRpcStubBuffer *This,
  7246.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7247.     PRPC_MESSAGE _pRpcMessage,
  7248.     DWORD *_pdwStubPhase);
  7249.  
  7250.  
  7251. HRESULT STDMETHODCALLTYPE IWMProfile_RemoveStreamByNumber_Proxy( 
  7252.     IWMProfile * This,
  7253.     /* [in] */ WORD wStreamNum);
  7254.  
  7255.  
  7256. void __RPC_STUB IWMProfile_RemoveStreamByNumber_Stub(
  7257.     IRpcStubBuffer *This,
  7258.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7259.     PRPC_MESSAGE _pRpcMessage,
  7260.     DWORD *_pdwStubPhase);
  7261.  
  7262.  
  7263. HRESULT STDMETHODCALLTYPE IWMProfile_AddStream_Proxy( 
  7264.     IWMProfile * This,
  7265.     /* [in] */ IWMStreamConfig *pConfig);
  7266.  
  7267.  
  7268. void __RPC_STUB IWMProfile_AddStream_Stub(
  7269.     IRpcStubBuffer *This,
  7270.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7271.     PRPC_MESSAGE _pRpcMessage,
  7272.     DWORD *_pdwStubPhase);
  7273.  
  7274.  
  7275. HRESULT STDMETHODCALLTYPE IWMProfile_ReconfigStream_Proxy( 
  7276.     IWMProfile * This,
  7277.     /* [in] */ IWMStreamConfig *pConfig);
  7278.  
  7279.  
  7280. void __RPC_STUB IWMProfile_ReconfigStream_Stub(
  7281.     IRpcStubBuffer *This,
  7282.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7283.     PRPC_MESSAGE _pRpcMessage,
  7284.     DWORD *_pdwStubPhase);
  7285.  
  7286.  
  7287. HRESULT STDMETHODCALLTYPE IWMProfile_CreateNewStream_Proxy( 
  7288.     IWMProfile * This,
  7289.     /* [in] */ REFGUID guidStreamType,
  7290.     /* [out] */ IWMStreamConfig **ppConfig);
  7291.  
  7292.  
  7293. void __RPC_STUB IWMProfile_CreateNewStream_Stub(
  7294.     IRpcStubBuffer *This,
  7295.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7296.     PRPC_MESSAGE _pRpcMessage,
  7297.     DWORD *_pdwStubPhase);
  7298.  
  7299.  
  7300. HRESULT STDMETHODCALLTYPE IWMProfile_GetMutualExclusionCount_Proxy( 
  7301.     IWMProfile * This,
  7302.     /* [out] */ DWORD *pcME);
  7303.  
  7304.  
  7305. void __RPC_STUB IWMProfile_GetMutualExclusionCount_Stub(
  7306.     IRpcStubBuffer *This,
  7307.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7308.     PRPC_MESSAGE _pRpcMessage,
  7309.     DWORD *_pdwStubPhase);
  7310.  
  7311.  
  7312. HRESULT STDMETHODCALLTYPE IWMProfile_GetMutualExclusion_Proxy( 
  7313.     IWMProfile * This,
  7314.     /* [in] */ DWORD dwMEIndex,
  7315.     /* [out] */ IWMMutualExclusion **ppME);
  7316.  
  7317.  
  7318. void __RPC_STUB IWMProfile_GetMutualExclusion_Stub(
  7319.     IRpcStubBuffer *This,
  7320.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7321.     PRPC_MESSAGE _pRpcMessage,
  7322.     DWORD *_pdwStubPhase);
  7323.  
  7324.  
  7325. HRESULT STDMETHODCALLTYPE IWMProfile_RemoveMutualExclusion_Proxy( 
  7326.     IWMProfile * This,
  7327.     /* [in] */ IWMMutualExclusion *pME);
  7328.  
  7329.  
  7330. void __RPC_STUB IWMProfile_RemoveMutualExclusion_Stub(
  7331.     IRpcStubBuffer *This,
  7332.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7333.     PRPC_MESSAGE _pRpcMessage,
  7334.     DWORD *_pdwStubPhase);
  7335.  
  7336.  
  7337. HRESULT STDMETHODCALLTYPE IWMProfile_AddMutualExclusion_Proxy( 
  7338.     IWMProfile * This,
  7339.     /* [in] */ IWMMutualExclusion *pME);
  7340.  
  7341.  
  7342. void __RPC_STUB IWMProfile_AddMutualExclusion_Stub(
  7343.     IRpcStubBuffer *This,
  7344.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7345.     PRPC_MESSAGE _pRpcMessage,
  7346.     DWORD *_pdwStubPhase);
  7347.  
  7348.  
  7349. HRESULT STDMETHODCALLTYPE IWMProfile_CreateNewMutualExclusion_Proxy( 
  7350.     IWMProfile * This,
  7351.     /* [out] */ IWMMutualExclusion **ppME);
  7352.  
  7353.  
  7354. void __RPC_STUB IWMProfile_CreateNewMutualExclusion_Stub(
  7355.     IRpcStubBuffer *This,
  7356.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7357.     PRPC_MESSAGE _pRpcMessage,
  7358.     DWORD *_pdwStubPhase);
  7359.  
  7360.  
  7361.  
  7362. #endif     /* __IWMProfile_INTERFACE_DEFINED__ */
  7363.  
  7364.  
  7365. #ifndef __IWMProfile2_INTERFACE_DEFINED__
  7366. #define __IWMProfile2_INTERFACE_DEFINED__
  7367.  
  7368. /* interface IWMProfile2 */
  7369. /* [local][unique][helpstring][uuid][object] */ 
  7370.  
  7371.  
  7372. EXTERN_C const IID IID_IWMProfile2;
  7373.  
  7374. #if defined(__cplusplus) && !defined(CINTERFACE)
  7375.     
  7376.     MIDL_INTERFACE("07E72D33-D94E-4be7-8843-60AE5FF7E5F5")
  7377.     IWMProfile2 : public IWMProfile
  7378.     {
  7379.     public:
  7380.         virtual HRESULT STDMETHODCALLTYPE GetProfileID( 
  7381.             /* [out] */ GUID *pguidID) = 0;
  7382.         
  7383.     };
  7384.     
  7385. #else     /* C style interface */
  7386.  
  7387.     typedef struct IWMProfile2Vtbl
  7388.     {
  7389.         BEGIN_INTERFACE
  7390.         
  7391.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  7392.             IWMProfile2 * This,
  7393.             /* [in] */ REFIID riid,
  7394.             /* [iid_is][out] */ void **ppvObject);
  7395.         
  7396.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  7397.             IWMProfile2 * This);
  7398.         
  7399.         ULONG ( STDMETHODCALLTYPE *Release )( 
  7400.             IWMProfile2 * This);
  7401.         
  7402.         HRESULT ( STDMETHODCALLTYPE *GetVersion )( 
  7403.             IWMProfile2 * This,
  7404.             /* [out] */ WMT_VERSION *pdwVersion);
  7405.         
  7406.         HRESULT ( STDMETHODCALLTYPE *GetName )( 
  7407.             IWMProfile2 * This,
  7408.             /* [size_is][out] */ WCHAR *pwszName,
  7409.             /* [out][in] */ DWORD *pcchName);
  7410.         
  7411.         HRESULT ( STDMETHODCALLTYPE *SetName )( 
  7412.             IWMProfile2 * This,
  7413.             /* [in] */ const WCHAR *pwszName);
  7414.         
  7415.         HRESULT ( STDMETHODCALLTYPE *GetDescription )( 
  7416.             IWMProfile2 * This,
  7417.             /* [size_is][out] */ WCHAR *pwszDescription,
  7418.             /* [out][in] */ DWORD *pcchDescription);
  7419.         
  7420.         HRESULT ( STDMETHODCALLTYPE *SetDescription )( 
  7421.             IWMProfile2 * This,
  7422.             /* [in] */ const WCHAR *pwszDescription);
  7423.         
  7424.         HRESULT ( STDMETHODCALLTYPE *GetStreamCount )( 
  7425.             IWMProfile2 * This,
  7426.             /* [out] */ DWORD *pcStreams);
  7427.         
  7428.         HRESULT ( STDMETHODCALLTYPE *GetStream )( 
  7429.             IWMProfile2 * This,
  7430.             /* [in] */ DWORD dwStreamIndex,
  7431.             /* [out] */ IWMStreamConfig **ppConfig);
  7432.         
  7433.         HRESULT ( STDMETHODCALLTYPE *GetStreamByNumber )( 
  7434.             IWMProfile2 * This,
  7435.             /* [in] */ WORD wStreamNum,
  7436.             /* [out] */ IWMStreamConfig **ppConfig);
  7437.         
  7438.         HRESULT ( STDMETHODCALLTYPE *RemoveStream )( 
  7439.             IWMProfile2 * This,
  7440.             /* [in] */ IWMStreamConfig *pConfig);
  7441.         
  7442.         HRESULT ( STDMETHODCALLTYPE *RemoveStreamByNumber )( 
  7443.             IWMProfile2 * This,
  7444.             /* [in] */ WORD wStreamNum);
  7445.         
  7446.         HRESULT ( STDMETHODCALLTYPE *AddStream )( 
  7447.             IWMProfile2 * This,
  7448.             /* [in] */ IWMStreamConfig *pConfig);
  7449.         
  7450.         HRESULT ( STDMETHODCALLTYPE *ReconfigStream )( 
  7451.             IWMProfile2 * This,
  7452.             /* [in] */ IWMStreamConfig *pConfig);
  7453.         
  7454.         HRESULT ( STDMETHODCALLTYPE *CreateNewStream )( 
  7455.             IWMProfile2 * This,
  7456.             /* [in] */ REFGUID guidStreamType,
  7457.             /* [out] */ IWMStreamConfig **ppConfig);
  7458.         
  7459.         HRESULT ( STDMETHODCALLTYPE *GetMutualExclusionCount )( 
  7460.             IWMProfile2 * This,
  7461.             /* [out] */ DWORD *pcME);
  7462.         
  7463.         HRESULT ( STDMETHODCALLTYPE *GetMutualExclusion )( 
  7464.             IWMProfile2 * This,
  7465.             /* [in] */ DWORD dwMEIndex,
  7466.             /* [out] */ IWMMutualExclusion **ppME);
  7467.         
  7468.         HRESULT ( STDMETHODCALLTYPE *RemoveMutualExclusion )( 
  7469.             IWMProfile2 * This,
  7470.             /* [in] */ IWMMutualExclusion *pME);
  7471.         
  7472.         HRESULT ( STDMETHODCALLTYPE *AddMutualExclusion )( 
  7473.             IWMProfile2 * This,
  7474.             /* [in] */ IWMMutualExclusion *pME);
  7475.         
  7476.         HRESULT ( STDMETHODCALLTYPE *CreateNewMutualExclusion )( 
  7477.             IWMProfile2 * This,
  7478.             /* [out] */ IWMMutualExclusion **ppME);
  7479.         
  7480.         HRESULT ( STDMETHODCALLTYPE *GetProfileID )( 
  7481.             IWMProfile2 * This,
  7482.             /* [out] */ GUID *pguidID);
  7483.         
  7484.         END_INTERFACE
  7485.     } IWMProfile2Vtbl;
  7486.  
  7487.     interface IWMProfile2
  7488.     {
  7489.         CONST_VTBL struct IWMProfile2Vtbl *lpVtbl;
  7490.     };
  7491.  
  7492.     
  7493.  
  7494. #ifdef COBJMACROS
  7495.  
  7496.  
  7497. #define IWMProfile2_QueryInterface(This,riid,ppvObject)    \
  7498.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  7499.  
  7500. #define IWMProfile2_AddRef(This)    \
  7501.     (This)->lpVtbl -> AddRef(This)
  7502.  
  7503. #define IWMProfile2_Release(This)    \
  7504.     (This)->lpVtbl -> Release(This)
  7505.  
  7506.  
  7507. #define IWMProfile2_GetVersion(This,pdwVersion)    \
  7508.     (This)->lpVtbl -> GetVersion(This,pdwVersion)
  7509.  
  7510. #define IWMProfile2_GetName(This,pwszName,pcchName)    \
  7511.     (This)->lpVtbl -> GetName(This,pwszName,pcchName)
  7512.  
  7513. #define IWMProfile2_SetName(This,pwszName)    \
  7514.     (This)->lpVtbl -> SetName(This,pwszName)
  7515.  
  7516. #define IWMProfile2_GetDescription(This,pwszDescription,pcchDescription)    \
  7517.     (This)->lpVtbl -> GetDescription(This,pwszDescription,pcchDescription)
  7518.  
  7519. #define IWMProfile2_SetDescription(This,pwszDescription)    \
  7520.     (This)->lpVtbl -> SetDescription(This,pwszDescription)
  7521.  
  7522. #define IWMProfile2_GetStreamCount(This,pcStreams)    \
  7523.     (This)->lpVtbl -> GetStreamCount(This,pcStreams)
  7524.  
  7525. #define IWMProfile2_GetStream(This,dwStreamIndex,ppConfig)    \
  7526.     (This)->lpVtbl -> GetStream(This,dwStreamIndex,ppConfig)
  7527.  
  7528. #define IWMProfile2_GetStreamByNumber(This,wStreamNum,ppConfig)    \
  7529.     (This)->lpVtbl -> GetStreamByNumber(This,wStreamNum,ppConfig)
  7530.  
  7531. #define IWMProfile2_RemoveStream(This,pConfig)    \
  7532.     (This)->lpVtbl -> RemoveStream(This,pConfig)
  7533.  
  7534. #define IWMProfile2_RemoveStreamByNumber(This,wStreamNum)    \
  7535.     (This)->lpVtbl -> RemoveStreamByNumber(This,wStreamNum)
  7536.  
  7537. #define IWMProfile2_AddStream(This,pConfig)    \
  7538.     (This)->lpVtbl -> AddStream(This,pConfig)
  7539.  
  7540. #define IWMProfile2_ReconfigStream(This,pConfig)    \
  7541.     (This)->lpVtbl -> ReconfigStream(This,pConfig)
  7542.  
  7543. #define IWMProfile2_CreateNewStream(This,guidStreamType,ppConfig)    \
  7544.     (This)->lpVtbl -> CreateNewStream(This,guidStreamType,ppConfig)
  7545.  
  7546. #define IWMProfile2_GetMutualExclusionCount(This,pcME)    \
  7547.     (This)->lpVtbl -> GetMutualExclusionCount(This,pcME)
  7548.  
  7549. #define IWMProfile2_GetMutualExclusion(This,dwMEIndex,ppME)    \
  7550.     (This)->lpVtbl -> GetMutualExclusion(This,dwMEIndex,ppME)
  7551.  
  7552. #define IWMProfile2_RemoveMutualExclusion(This,pME)    \
  7553.     (This)->lpVtbl -> RemoveMutualExclusion(This,pME)
  7554.  
  7555. #define IWMProfile2_AddMutualExclusion(This,pME)    \
  7556.     (This)->lpVtbl -> AddMutualExclusion(This,pME)
  7557.  
  7558. #define IWMProfile2_CreateNewMutualExclusion(This,ppME)    \
  7559.     (This)->lpVtbl -> CreateNewMutualExclusion(This,ppME)
  7560.  
  7561.  
  7562. #define IWMProfile2_GetProfileID(This,pguidID)    \
  7563.     (This)->lpVtbl -> GetProfileID(This,pguidID)
  7564.  
  7565. #endif /* COBJMACROS */
  7566.  
  7567.  
  7568. #endif     /* C style interface */
  7569.  
  7570.  
  7571.  
  7572. HRESULT STDMETHODCALLTYPE IWMProfile2_GetProfileID_Proxy( 
  7573.     IWMProfile2 * This,
  7574.     /* [out] */ GUID *pguidID);
  7575.  
  7576.  
  7577. void __RPC_STUB IWMProfile2_GetProfileID_Stub(
  7578.     IRpcStubBuffer *This,
  7579.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7580.     PRPC_MESSAGE _pRpcMessage,
  7581.     DWORD *_pdwStubPhase);
  7582.  
  7583.  
  7584.  
  7585. #endif     /* __IWMProfile2_INTERFACE_DEFINED__ */
  7586.  
  7587.  
  7588. #ifndef __IWMProfile3_INTERFACE_DEFINED__
  7589. #define __IWMProfile3_INTERFACE_DEFINED__
  7590.  
  7591. /* interface IWMProfile3 */
  7592. /* [local][unique][helpstring][uuid][object] */ 
  7593.  
  7594.  
  7595. EXTERN_C const IID IID_IWMProfile3;
  7596.  
  7597. #if defined(__cplusplus) && !defined(CINTERFACE)
  7598.     
  7599.     MIDL_INTERFACE("00EF96CC-A461-4546-8BCD-C9A28F0E06F5")
  7600.     IWMProfile3 : public IWMProfile2
  7601.     {
  7602.     public:
  7603.         virtual HRESULT STDMETHODCALLTYPE GetStorageFormat( 
  7604.             /* [out] */ WMT_STORAGE_FORMAT *pnStorageFormat) = 0;
  7605.         
  7606.         virtual HRESULT STDMETHODCALLTYPE SetStorageFormat( 
  7607.             /* [in] */ WMT_STORAGE_FORMAT nStorageFormat) = 0;
  7608.         
  7609.         virtual HRESULT STDMETHODCALLTYPE GetBandwidthSharingCount( 
  7610.             /* [out] */ DWORD *pcBS) = 0;
  7611.         
  7612.         virtual HRESULT STDMETHODCALLTYPE GetBandwidthSharing( 
  7613.             /* [in] */ DWORD dwBSIndex,
  7614.             /* [out] */ IWMBandwidthSharing **ppBS) = 0;
  7615.         
  7616.         virtual HRESULT STDMETHODCALLTYPE RemoveBandwidthSharing( 
  7617.             /* [in] */ IWMBandwidthSharing *pBS) = 0;
  7618.         
  7619.         virtual HRESULT STDMETHODCALLTYPE AddBandwidthSharing( 
  7620.             /* [in] */ IWMBandwidthSharing *pBS) = 0;
  7621.         
  7622.         virtual HRESULT STDMETHODCALLTYPE CreateNewBandwidthSharing( 
  7623.             /* [out] */ IWMBandwidthSharing **ppBS) = 0;
  7624.         
  7625.         virtual HRESULT STDMETHODCALLTYPE GetStreamPrioritization( 
  7626.             /* [out] */ IWMStreamPrioritization **ppSP) = 0;
  7627.         
  7628.         virtual HRESULT STDMETHODCALLTYPE SetStreamPrioritization( 
  7629.             /* [in] */ IWMStreamPrioritization *pSP) = 0;
  7630.         
  7631.         virtual HRESULT STDMETHODCALLTYPE RemoveStreamPrioritization( void) = 0;
  7632.         
  7633.         virtual HRESULT STDMETHODCALLTYPE CreateNewStreamPrioritization( 
  7634.             /* [out] */ IWMStreamPrioritization **ppSP) = 0;
  7635.         
  7636.         virtual HRESULT STDMETHODCALLTYPE GetExpectedPacketCount( 
  7637.             /* [in] */ QWORD msDuration,
  7638.             /* [out] */ QWORD *pcPackets) = 0;
  7639.         
  7640.     };
  7641.     
  7642. #else     /* C style interface */
  7643.  
  7644.     typedef struct IWMProfile3Vtbl
  7645.     {
  7646.         BEGIN_INTERFACE
  7647.         
  7648.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  7649.             IWMProfile3 * This,
  7650.             /* [in] */ REFIID riid,
  7651.             /* [iid_is][out] */ void **ppvObject);
  7652.         
  7653.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  7654.             IWMProfile3 * This);
  7655.         
  7656.         ULONG ( STDMETHODCALLTYPE *Release )( 
  7657.             IWMProfile3 * This);
  7658.         
  7659.         HRESULT ( STDMETHODCALLTYPE *GetVersion )( 
  7660.             IWMProfile3 * This,
  7661.             /* [out] */ WMT_VERSION *pdwVersion);
  7662.         
  7663.         HRESULT ( STDMETHODCALLTYPE *GetName )( 
  7664.             IWMProfile3 * This,
  7665.             /* [size_is][out] */ WCHAR *pwszName,
  7666.             /* [out][in] */ DWORD *pcchName);
  7667.         
  7668.         HRESULT ( STDMETHODCALLTYPE *SetName )( 
  7669.             IWMProfile3 * This,
  7670.             /* [in] */ const WCHAR *pwszName);
  7671.         
  7672.         HRESULT ( STDMETHODCALLTYPE *GetDescription )( 
  7673.             IWMProfile3 * This,
  7674.             /* [size_is][out] */ WCHAR *pwszDescription,
  7675.             /* [out][in] */ DWORD *pcchDescription);
  7676.         
  7677.         HRESULT ( STDMETHODCALLTYPE *SetDescription )( 
  7678.             IWMProfile3 * This,
  7679.             /* [in] */ const WCHAR *pwszDescription);
  7680.         
  7681.         HRESULT ( STDMETHODCALLTYPE *GetStreamCount )( 
  7682.             IWMProfile3 * This,
  7683.             /* [out] */ DWORD *pcStreams);
  7684.         
  7685.         HRESULT ( STDMETHODCALLTYPE *GetStream )( 
  7686.             IWMProfile3 * This,
  7687.             /* [in] */ DWORD dwStreamIndex,
  7688.             /* [out] */ IWMStreamConfig **ppConfig);
  7689.         
  7690.         HRESULT ( STDMETHODCALLTYPE *GetStreamByNumber )( 
  7691.             IWMProfile3 * This,
  7692.             /* [in] */ WORD wStreamNum,
  7693.             /* [out] */ IWMStreamConfig **ppConfig);
  7694.         
  7695.         HRESULT ( STDMETHODCALLTYPE *RemoveStream )( 
  7696.             IWMProfile3 * This,
  7697.             /* [in] */ IWMStreamConfig *pConfig);
  7698.         
  7699.         HRESULT ( STDMETHODCALLTYPE *RemoveStreamByNumber )( 
  7700.             IWMProfile3 * This,
  7701.             /* [in] */ WORD wStreamNum);
  7702.         
  7703.         HRESULT ( STDMETHODCALLTYPE *AddStream )( 
  7704.             IWMProfile3 * This,
  7705.             /* [in] */ IWMStreamConfig *pConfig);
  7706.         
  7707.         HRESULT ( STDMETHODCALLTYPE *ReconfigStream )( 
  7708.             IWMProfile3 * This,
  7709.             /* [in] */ IWMStreamConfig *pConfig);
  7710.         
  7711.         HRESULT ( STDMETHODCALLTYPE *CreateNewStream )( 
  7712.             IWMProfile3 * This,
  7713.             /* [in] */ REFGUID guidStreamType,
  7714.             /* [out] */ IWMStreamConfig **ppConfig);
  7715.         
  7716.         HRESULT ( STDMETHODCALLTYPE *GetMutualExclusionCount )( 
  7717.             IWMProfile3 * This,
  7718.             /* [out] */ DWORD *pcME);
  7719.         
  7720.         HRESULT ( STDMETHODCALLTYPE *GetMutualExclusion )( 
  7721.             IWMProfile3 * This,
  7722.             /* [in] */ DWORD dwMEIndex,
  7723.             /* [out] */ IWMMutualExclusion **ppME);
  7724.         
  7725.         HRESULT ( STDMETHODCALLTYPE *RemoveMutualExclusion )( 
  7726.             IWMProfile3 * This,
  7727.             /* [in] */ IWMMutualExclusion *pME);
  7728.         
  7729.         HRESULT ( STDMETHODCALLTYPE *AddMutualExclusion )( 
  7730.             IWMProfile3 * This,
  7731.             /* [in] */ IWMMutualExclusion *pME);
  7732.         
  7733.         HRESULT ( STDMETHODCALLTYPE *CreateNewMutualExclusion )( 
  7734.             IWMProfile3 * This,
  7735.             /* [out] */ IWMMutualExclusion **ppME);
  7736.         
  7737.         HRESULT ( STDMETHODCALLTYPE *GetProfileID )( 
  7738.             IWMProfile3 * This,
  7739.             /* [out] */ GUID *pguidID);
  7740.         
  7741.         HRESULT ( STDMETHODCALLTYPE *GetStorageFormat )( 
  7742.             IWMProfile3 * This,
  7743.             /* [out] */ WMT_STORAGE_FORMAT *pnStorageFormat);
  7744.         
  7745.         HRESULT ( STDMETHODCALLTYPE *SetStorageFormat )( 
  7746.             IWMProfile3 * This,
  7747.             /* [in] */ WMT_STORAGE_FORMAT nStorageFormat);
  7748.         
  7749.         HRESULT ( STDMETHODCALLTYPE *GetBandwidthSharingCount )( 
  7750.             IWMProfile3 * This,
  7751.             /* [out] */ DWORD *pcBS);
  7752.         
  7753.         HRESULT ( STDMETHODCALLTYPE *GetBandwidthSharing )( 
  7754.             IWMProfile3 * This,
  7755.             /* [in] */ DWORD dwBSIndex,
  7756.             /* [out] */ IWMBandwidthSharing **ppBS);
  7757.         
  7758.         HRESULT ( STDMETHODCALLTYPE *RemoveBandwidthSharing )( 
  7759.             IWMProfile3 * This,
  7760.             /* [in] */ IWMBandwidthSharing *pBS);
  7761.         
  7762.         HRESULT ( STDMETHODCALLTYPE *AddBandwidthSharing )( 
  7763.             IWMProfile3 * This,
  7764.             /* [in] */ IWMBandwidthSharing *pBS);
  7765.         
  7766.         HRESULT ( STDMETHODCALLTYPE *CreateNewBandwidthSharing )( 
  7767.             IWMProfile3 * This,
  7768.             /* [out] */ IWMBandwidthSharing **ppBS);
  7769.         
  7770.         HRESULT ( STDMETHODCALLTYPE *GetStreamPrioritization )( 
  7771.             IWMProfile3 * This,
  7772.             /* [out] */ IWMStreamPrioritization **ppSP);
  7773.         
  7774.         HRESULT ( STDMETHODCALLTYPE *SetStreamPrioritization )( 
  7775.             IWMProfile3 * This,
  7776.             /* [in] */ IWMStreamPrioritization *pSP);
  7777.         
  7778.         HRESULT ( STDMETHODCALLTYPE *RemoveStreamPrioritization )( 
  7779.             IWMProfile3 * This);
  7780.         
  7781.         HRESULT ( STDMETHODCALLTYPE *CreateNewStreamPrioritization )( 
  7782.             IWMProfile3 * This,
  7783.             /* [out] */ IWMStreamPrioritization **ppSP);
  7784.         
  7785.         HRESULT ( STDMETHODCALLTYPE *GetExpectedPacketCount )( 
  7786.             IWMProfile3 * This,
  7787.             /* [in] */ QWORD msDuration,
  7788.             /* [out] */ QWORD *pcPackets);
  7789.         
  7790.         END_INTERFACE
  7791.     } IWMProfile3Vtbl;
  7792.  
  7793.     interface IWMProfile3
  7794.     {
  7795.         CONST_VTBL struct IWMProfile3Vtbl *lpVtbl;
  7796.     };
  7797.  
  7798.     
  7799.  
  7800. #ifdef COBJMACROS
  7801.  
  7802.  
  7803. #define IWMProfile3_QueryInterface(This,riid,ppvObject)    \
  7804.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  7805.  
  7806. #define IWMProfile3_AddRef(This)    \
  7807.     (This)->lpVtbl -> AddRef(This)
  7808.  
  7809. #define IWMProfile3_Release(This)    \
  7810.     (This)->lpVtbl -> Release(This)
  7811.  
  7812.  
  7813. #define IWMProfile3_GetVersion(This,pdwVersion)    \
  7814.     (This)->lpVtbl -> GetVersion(This,pdwVersion)
  7815.  
  7816. #define IWMProfile3_GetName(This,pwszName,pcchName)    \
  7817.     (This)->lpVtbl -> GetName(This,pwszName,pcchName)
  7818.  
  7819. #define IWMProfile3_SetName(This,pwszName)    \
  7820.     (This)->lpVtbl -> SetName(This,pwszName)
  7821.  
  7822. #define IWMProfile3_GetDescription(This,pwszDescription,pcchDescription)    \
  7823.     (This)->lpVtbl -> GetDescription(This,pwszDescription,pcchDescription)
  7824.  
  7825. #define IWMProfile3_SetDescription(This,pwszDescription)    \
  7826.     (This)->lpVtbl -> SetDescription(This,pwszDescription)
  7827.  
  7828. #define IWMProfile3_GetStreamCount(This,pcStreams)    \
  7829.     (This)->lpVtbl -> GetStreamCount(This,pcStreams)
  7830.  
  7831. #define IWMProfile3_GetStream(This,dwStreamIndex,ppConfig)    \
  7832.     (This)->lpVtbl -> GetStream(This,dwStreamIndex,ppConfig)
  7833.  
  7834. #define IWMProfile3_GetStreamByNumber(This,wStreamNum,ppConfig)    \
  7835.     (This)->lpVtbl -> GetStreamByNumber(This,wStreamNum,ppConfig)
  7836.  
  7837. #define IWMProfile3_RemoveStream(This,pConfig)    \
  7838.     (This)->lpVtbl -> RemoveStream(This,pConfig)
  7839.  
  7840. #define IWMProfile3_RemoveStreamByNumber(This,wStreamNum)    \
  7841.     (This)->lpVtbl -> RemoveStreamByNumber(This,wStreamNum)
  7842.  
  7843. #define IWMProfile3_AddStream(This,pConfig)    \
  7844.     (This)->lpVtbl -> AddStream(This,pConfig)
  7845.  
  7846. #define IWMProfile3_ReconfigStream(This,pConfig)    \
  7847.     (This)->lpVtbl -> ReconfigStream(This,pConfig)
  7848.  
  7849. #define IWMProfile3_CreateNewStream(This,guidStreamType,ppConfig)    \
  7850.     (This)->lpVtbl -> CreateNewStream(This,guidStreamType,ppConfig)
  7851.  
  7852. #define IWMProfile3_GetMutualExclusionCount(This,pcME)    \
  7853.     (This)->lpVtbl -> GetMutualExclusionCount(This,pcME)
  7854.  
  7855. #define IWMProfile3_GetMutualExclusion(This,dwMEIndex,ppME)    \
  7856.     (This)->lpVtbl -> GetMutualExclusion(This,dwMEIndex,ppME)
  7857.  
  7858. #define IWMProfile3_RemoveMutualExclusion(This,pME)    \
  7859.     (This)->lpVtbl -> RemoveMutualExclusion(This,pME)
  7860.  
  7861. #define IWMProfile3_AddMutualExclusion(This,pME)    \
  7862.     (This)->lpVtbl -> AddMutualExclusion(This,pME)
  7863.  
  7864. #define IWMProfile3_CreateNewMutualExclusion(This,ppME)    \
  7865.     (This)->lpVtbl -> CreateNewMutualExclusion(This,ppME)
  7866.  
  7867.  
  7868. #define IWMProfile3_GetProfileID(This,pguidID)    \
  7869.     (This)->lpVtbl -> GetProfileID(This,pguidID)
  7870.  
  7871.  
  7872. #define IWMProfile3_GetStorageFormat(This,pnStorageFormat)    \
  7873.     (This)->lpVtbl -> GetStorageFormat(This,pnStorageFormat)
  7874.  
  7875. #define IWMProfile3_SetStorageFormat(This,nStorageFormat)    \
  7876.     (This)->lpVtbl -> SetStorageFormat(This,nStorageFormat)
  7877.  
  7878. #define IWMProfile3_GetBandwidthSharingCount(This,pcBS)    \
  7879.     (This)->lpVtbl -> GetBandwidthSharingCount(This,pcBS)
  7880.  
  7881. #define IWMProfile3_GetBandwidthSharing(This,dwBSIndex,ppBS)    \
  7882.     (This)->lpVtbl -> GetBandwidthSharing(This,dwBSIndex,ppBS)
  7883.  
  7884. #define IWMProfile3_RemoveBandwidthSharing(This,pBS)    \
  7885.     (This)->lpVtbl -> RemoveBandwidthSharing(This,pBS)
  7886.  
  7887. #define IWMProfile3_AddBandwidthSharing(This,pBS)    \
  7888.     (This)->lpVtbl -> AddBandwidthSharing(This,pBS)
  7889.  
  7890. #define IWMProfile3_CreateNewBandwidthSharing(This,ppBS)    \
  7891.     (This)->lpVtbl -> CreateNewBandwidthSharing(This,ppBS)
  7892.  
  7893. #define IWMProfile3_GetStreamPrioritization(This,ppSP)    \
  7894.     (This)->lpVtbl -> GetStreamPrioritization(This,ppSP)
  7895.  
  7896. #define IWMProfile3_SetStreamPrioritization(This,pSP)    \
  7897.     (This)->lpVtbl -> SetStreamPrioritization(This,pSP)
  7898.  
  7899. #define IWMProfile3_RemoveStreamPrioritization(This)    \
  7900.     (This)->lpVtbl -> RemoveStreamPrioritization(This)
  7901.  
  7902. #define IWMProfile3_CreateNewStreamPrioritization(This,ppSP)    \
  7903.     (This)->lpVtbl -> CreateNewStreamPrioritization(This,ppSP)
  7904.  
  7905. #define IWMProfile3_GetExpectedPacketCount(This,msDuration,pcPackets)    \
  7906.     (This)->lpVtbl -> GetExpectedPacketCount(This,msDuration,pcPackets)
  7907.  
  7908. #endif /* COBJMACROS */
  7909.  
  7910.  
  7911. #endif     /* C style interface */
  7912.  
  7913.  
  7914.  
  7915. HRESULT STDMETHODCALLTYPE IWMProfile3_GetStorageFormat_Proxy( 
  7916.     IWMProfile3 * This,
  7917.     /* [out] */ WMT_STORAGE_FORMAT *pnStorageFormat);
  7918.  
  7919.  
  7920. void __RPC_STUB IWMProfile3_GetStorageFormat_Stub(
  7921.     IRpcStubBuffer *This,
  7922.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7923.     PRPC_MESSAGE _pRpcMessage,
  7924.     DWORD *_pdwStubPhase);
  7925.  
  7926.  
  7927. HRESULT STDMETHODCALLTYPE IWMProfile3_SetStorageFormat_Proxy( 
  7928.     IWMProfile3 * This,
  7929.     /* [in] */ WMT_STORAGE_FORMAT nStorageFormat);
  7930.  
  7931.  
  7932. void __RPC_STUB IWMProfile3_SetStorageFormat_Stub(
  7933.     IRpcStubBuffer *This,
  7934.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7935.     PRPC_MESSAGE _pRpcMessage,
  7936.     DWORD *_pdwStubPhase);
  7937.  
  7938.  
  7939. HRESULT STDMETHODCALLTYPE IWMProfile3_GetBandwidthSharingCount_Proxy( 
  7940.     IWMProfile3 * This,
  7941.     /* [out] */ DWORD *pcBS);
  7942.  
  7943.  
  7944. void __RPC_STUB IWMProfile3_GetBandwidthSharingCount_Stub(
  7945.     IRpcStubBuffer *This,
  7946.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7947.     PRPC_MESSAGE _pRpcMessage,
  7948.     DWORD *_pdwStubPhase);
  7949.  
  7950.  
  7951. HRESULT STDMETHODCALLTYPE IWMProfile3_GetBandwidthSharing_Proxy( 
  7952.     IWMProfile3 * This,
  7953.     /* [in] */ DWORD dwBSIndex,
  7954.     /* [out] */ IWMBandwidthSharing **ppBS);
  7955.  
  7956.  
  7957. void __RPC_STUB IWMProfile3_GetBandwidthSharing_Stub(
  7958.     IRpcStubBuffer *This,
  7959.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7960.     PRPC_MESSAGE _pRpcMessage,
  7961.     DWORD *_pdwStubPhase);
  7962.  
  7963.  
  7964. HRESULT STDMETHODCALLTYPE IWMProfile3_RemoveBandwidthSharing_Proxy( 
  7965.     IWMProfile3 * This,
  7966.     /* [in] */ IWMBandwidthSharing *pBS);
  7967.  
  7968.  
  7969. void __RPC_STUB IWMProfile3_RemoveBandwidthSharing_Stub(
  7970.     IRpcStubBuffer *This,
  7971.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7972.     PRPC_MESSAGE _pRpcMessage,
  7973.     DWORD *_pdwStubPhase);
  7974.  
  7975.  
  7976. HRESULT STDMETHODCALLTYPE IWMProfile3_AddBandwidthSharing_Proxy( 
  7977.     IWMProfile3 * This,
  7978.     /* [in] */ IWMBandwidthSharing *pBS);
  7979.  
  7980.  
  7981. void __RPC_STUB IWMProfile3_AddBandwidthSharing_Stub(
  7982.     IRpcStubBuffer *This,
  7983.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7984.     PRPC_MESSAGE _pRpcMessage,
  7985.     DWORD *_pdwStubPhase);
  7986.  
  7987.  
  7988. HRESULT STDMETHODCALLTYPE IWMProfile3_CreateNewBandwidthSharing_Proxy( 
  7989.     IWMProfile3 * This,
  7990.     /* [out] */ IWMBandwidthSharing **ppBS);
  7991.  
  7992.  
  7993. void __RPC_STUB IWMProfile3_CreateNewBandwidthSharing_Stub(
  7994.     IRpcStubBuffer *This,
  7995.     IRpcChannelBuffer *_pRpcChannelBuffer,
  7996.     PRPC_MESSAGE _pRpcMessage,
  7997.     DWORD *_pdwStubPhase);
  7998.  
  7999.  
  8000. HRESULT STDMETHODCALLTYPE IWMProfile3_GetStreamPrioritization_Proxy( 
  8001.     IWMProfile3 * This,
  8002.     /* [out] */ IWMStreamPrioritization **ppSP);
  8003.  
  8004.  
  8005. void __RPC_STUB IWMProfile3_GetStreamPrioritization_Stub(
  8006.     IRpcStubBuffer *This,
  8007.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8008.     PRPC_MESSAGE _pRpcMessage,
  8009.     DWORD *_pdwStubPhase);
  8010.  
  8011.  
  8012. HRESULT STDMETHODCALLTYPE IWMProfile3_SetStreamPrioritization_Proxy( 
  8013.     IWMProfile3 * This,
  8014.     /* [in] */ IWMStreamPrioritization *pSP);
  8015.  
  8016.  
  8017. void __RPC_STUB IWMProfile3_SetStreamPrioritization_Stub(
  8018.     IRpcStubBuffer *This,
  8019.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8020.     PRPC_MESSAGE _pRpcMessage,
  8021.     DWORD *_pdwStubPhase);
  8022.  
  8023.  
  8024. HRESULT STDMETHODCALLTYPE IWMProfile3_RemoveStreamPrioritization_Proxy( 
  8025.     IWMProfile3 * This);
  8026.  
  8027.  
  8028. void __RPC_STUB IWMProfile3_RemoveStreamPrioritization_Stub(
  8029.     IRpcStubBuffer *This,
  8030.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8031.     PRPC_MESSAGE _pRpcMessage,
  8032.     DWORD *_pdwStubPhase);
  8033.  
  8034.  
  8035. HRESULT STDMETHODCALLTYPE IWMProfile3_CreateNewStreamPrioritization_Proxy( 
  8036.     IWMProfile3 * This,
  8037.     /* [out] */ IWMStreamPrioritization **ppSP);
  8038.  
  8039.  
  8040. void __RPC_STUB IWMProfile3_CreateNewStreamPrioritization_Stub(
  8041.     IRpcStubBuffer *This,
  8042.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8043.     PRPC_MESSAGE _pRpcMessage,
  8044.     DWORD *_pdwStubPhase);
  8045.  
  8046.  
  8047. HRESULT STDMETHODCALLTYPE IWMProfile3_GetExpectedPacketCount_Proxy( 
  8048.     IWMProfile3 * This,
  8049.     /* [in] */ QWORD msDuration,
  8050.     /* [out] */ QWORD *pcPackets);
  8051.  
  8052.  
  8053. void __RPC_STUB IWMProfile3_GetExpectedPacketCount_Stub(
  8054.     IRpcStubBuffer *This,
  8055.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8056.     PRPC_MESSAGE _pRpcMessage,
  8057.     DWORD *_pdwStubPhase);
  8058.  
  8059.  
  8060.  
  8061. #endif     /* __IWMProfile3_INTERFACE_DEFINED__ */
  8062.  
  8063.  
  8064. #ifndef __IWMStreamConfig_INTERFACE_DEFINED__
  8065. #define __IWMStreamConfig_INTERFACE_DEFINED__
  8066.  
  8067. /* interface IWMStreamConfig */
  8068. /* [local][unique][helpstring][uuid][object] */ 
  8069.  
  8070.  
  8071. EXTERN_C const IID IID_IWMStreamConfig;
  8072.  
  8073. #if defined(__cplusplus) && !defined(CINTERFACE)
  8074.     
  8075.     MIDL_INTERFACE("96406BDC-2B2B-11d3-B36B-00C04F6108FF")
  8076.     IWMStreamConfig : public IUnknown
  8077.     {
  8078.     public:
  8079.         virtual HRESULT STDMETHODCALLTYPE GetStreamType( 
  8080.             /* [out] */ GUID *pguidStreamType) = 0;
  8081.         
  8082.         virtual HRESULT STDMETHODCALLTYPE GetStreamNumber( 
  8083.             /* [out] */ WORD *pwStreamNum) = 0;
  8084.         
  8085.         virtual HRESULT STDMETHODCALLTYPE SetStreamNumber( 
  8086.             /* [in] */ WORD wStreamNum) = 0;
  8087.         
  8088.         virtual HRESULT STDMETHODCALLTYPE GetStreamName( 
  8089.             /* [size_is][out] */ WCHAR *pwszStreamName,
  8090.             /* [out][in] */ WORD *pcchStreamName) = 0;
  8091.         
  8092.         virtual HRESULT STDMETHODCALLTYPE SetStreamName( 
  8093.             /* [in] */ WCHAR *pwszStreamName) = 0;
  8094.         
  8095.         virtual HRESULT STDMETHODCALLTYPE GetConnectionName( 
  8096.             /* [size_is][out] */ WCHAR *pwszInputName,
  8097.             /* [out][in] */ WORD *pcchInputName) = 0;
  8098.         
  8099.         virtual HRESULT STDMETHODCALLTYPE SetConnectionName( 
  8100.             /* [in] */ WCHAR *pwszInputName) = 0;
  8101.         
  8102.         virtual HRESULT STDMETHODCALLTYPE GetBitrate( 
  8103.             /* [out] */ DWORD *pdwBitrate) = 0;
  8104.         
  8105.         virtual HRESULT STDMETHODCALLTYPE SetBitrate( 
  8106.             /* [in] */ DWORD pdwBitrate) = 0;
  8107.         
  8108.         virtual HRESULT STDMETHODCALLTYPE GetBufferWindow( 
  8109.             /* [out] */ DWORD *pmsBufferWindow) = 0;
  8110.         
  8111.         virtual HRESULT STDMETHODCALLTYPE SetBufferWindow( 
  8112.             /* [in] */ DWORD msBufferWindow) = 0;
  8113.         
  8114.     };
  8115.     
  8116. #else     /* C style interface */
  8117.  
  8118.     typedef struct IWMStreamConfigVtbl
  8119.     {
  8120.         BEGIN_INTERFACE
  8121.         
  8122.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  8123.             IWMStreamConfig * This,
  8124.             /* [in] */ REFIID riid,
  8125.             /* [iid_is][out] */ void **ppvObject);
  8126.         
  8127.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  8128.             IWMStreamConfig * This);
  8129.         
  8130.         ULONG ( STDMETHODCALLTYPE *Release )( 
  8131.             IWMStreamConfig * This);
  8132.         
  8133.         HRESULT ( STDMETHODCALLTYPE *GetStreamType )( 
  8134.             IWMStreamConfig * This,
  8135.             /* [out] */ GUID *pguidStreamType);
  8136.         
  8137.         HRESULT ( STDMETHODCALLTYPE *GetStreamNumber )( 
  8138.             IWMStreamConfig * This,
  8139.             /* [out] */ WORD *pwStreamNum);
  8140.         
  8141.         HRESULT ( STDMETHODCALLTYPE *SetStreamNumber )( 
  8142.             IWMStreamConfig * This,
  8143.             /* [in] */ WORD wStreamNum);
  8144.         
  8145.         HRESULT ( STDMETHODCALLTYPE *GetStreamName )( 
  8146.             IWMStreamConfig * This,
  8147.             /* [size_is][out] */ WCHAR *pwszStreamName,
  8148.             /* [out][in] */ WORD *pcchStreamName);
  8149.         
  8150.         HRESULT ( STDMETHODCALLTYPE *SetStreamName )( 
  8151.             IWMStreamConfig * This,
  8152.             /* [in] */ WCHAR *pwszStreamName);
  8153.         
  8154.         HRESULT ( STDMETHODCALLTYPE *GetConnectionName )( 
  8155.             IWMStreamConfig * This,
  8156.             /* [size_is][out] */ WCHAR *pwszInputName,
  8157.             /* [out][in] */ WORD *pcchInputName);
  8158.         
  8159.         HRESULT ( STDMETHODCALLTYPE *SetConnectionName )( 
  8160.             IWMStreamConfig * This,
  8161.             /* [in] */ WCHAR *pwszInputName);
  8162.         
  8163.         HRESULT ( STDMETHODCALLTYPE *GetBitrate )( 
  8164.             IWMStreamConfig * This,
  8165.             /* [out] */ DWORD *pdwBitrate);
  8166.         
  8167.         HRESULT ( STDMETHODCALLTYPE *SetBitrate )( 
  8168.             IWMStreamConfig * This,
  8169.             /* [in] */ DWORD pdwBitrate);
  8170.         
  8171.         HRESULT ( STDMETHODCALLTYPE *GetBufferWindow )( 
  8172.             IWMStreamConfig * This,
  8173.             /* [out] */ DWORD *pmsBufferWindow);
  8174.         
  8175.         HRESULT ( STDMETHODCALLTYPE *SetBufferWindow )( 
  8176.             IWMStreamConfig * This,
  8177.             /* [in] */ DWORD msBufferWindow);
  8178.         
  8179.         END_INTERFACE
  8180.     } IWMStreamConfigVtbl;
  8181.  
  8182.     interface IWMStreamConfig
  8183.     {
  8184.         CONST_VTBL struct IWMStreamConfigVtbl *lpVtbl;
  8185.     };
  8186.  
  8187.     
  8188.  
  8189. #ifdef COBJMACROS
  8190.  
  8191.  
  8192. #define IWMStreamConfig_QueryInterface(This,riid,ppvObject)    \
  8193.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  8194.  
  8195. #define IWMStreamConfig_AddRef(This)    \
  8196.     (This)->lpVtbl -> AddRef(This)
  8197.  
  8198. #define IWMStreamConfig_Release(This)    \
  8199.     (This)->lpVtbl -> Release(This)
  8200.  
  8201.  
  8202. #define IWMStreamConfig_GetStreamType(This,pguidStreamType)    \
  8203.     (This)->lpVtbl -> GetStreamType(This,pguidStreamType)
  8204.  
  8205. #define IWMStreamConfig_GetStreamNumber(This,pwStreamNum)    \
  8206.     (This)->lpVtbl -> GetStreamNumber(This,pwStreamNum)
  8207.  
  8208. #define IWMStreamConfig_SetStreamNumber(This,wStreamNum)    \
  8209.     (This)->lpVtbl -> SetStreamNumber(This,wStreamNum)
  8210.  
  8211. #define IWMStreamConfig_GetStreamName(This,pwszStreamName,pcchStreamName)    \
  8212.     (This)->lpVtbl -> GetStreamName(This,pwszStreamName,pcchStreamName)
  8213.  
  8214. #define IWMStreamConfig_SetStreamName(This,pwszStreamName)    \
  8215.     (This)->lpVtbl -> SetStreamName(This,pwszStreamName)
  8216.  
  8217. #define IWMStreamConfig_GetConnectionName(This,pwszInputName,pcchInputName)    \
  8218.     (This)->lpVtbl -> GetConnectionName(This,pwszInputName,pcchInputName)
  8219.  
  8220. #define IWMStreamConfig_SetConnectionName(This,pwszInputName)    \
  8221.     (This)->lpVtbl -> SetConnectionName(This,pwszInputName)
  8222.  
  8223. #define IWMStreamConfig_GetBitrate(This,pdwBitrate)    \
  8224.     (This)->lpVtbl -> GetBitrate(This,pdwBitrate)
  8225.  
  8226. #define IWMStreamConfig_SetBitrate(This,pdwBitrate)    \
  8227.     (This)->lpVtbl -> SetBitrate(This,pdwBitrate)
  8228.  
  8229. #define IWMStreamConfig_GetBufferWindow(This,pmsBufferWindow)    \
  8230.     (This)->lpVtbl -> GetBufferWindow(This,pmsBufferWindow)
  8231.  
  8232. #define IWMStreamConfig_SetBufferWindow(This,msBufferWindow)    \
  8233.     (This)->lpVtbl -> SetBufferWindow(This,msBufferWindow)
  8234.  
  8235. #endif /* COBJMACROS */
  8236.  
  8237.  
  8238. #endif     /* C style interface */
  8239.  
  8240.  
  8241.  
  8242. HRESULT STDMETHODCALLTYPE IWMStreamConfig_GetStreamType_Proxy( 
  8243.     IWMStreamConfig * This,
  8244.     /* [out] */ GUID *pguidStreamType);
  8245.  
  8246.  
  8247. void __RPC_STUB IWMStreamConfig_GetStreamType_Stub(
  8248.     IRpcStubBuffer *This,
  8249.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8250.     PRPC_MESSAGE _pRpcMessage,
  8251.     DWORD *_pdwStubPhase);
  8252.  
  8253.  
  8254. HRESULT STDMETHODCALLTYPE IWMStreamConfig_GetStreamNumber_Proxy( 
  8255.     IWMStreamConfig * This,
  8256.     /* [out] */ WORD *pwStreamNum);
  8257.  
  8258.  
  8259. void __RPC_STUB IWMStreamConfig_GetStreamNumber_Stub(
  8260.     IRpcStubBuffer *This,
  8261.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8262.     PRPC_MESSAGE _pRpcMessage,
  8263.     DWORD *_pdwStubPhase);
  8264.  
  8265.  
  8266. HRESULT STDMETHODCALLTYPE IWMStreamConfig_SetStreamNumber_Proxy( 
  8267.     IWMStreamConfig * This,
  8268.     /* [in] */ WORD wStreamNum);
  8269.  
  8270.  
  8271. void __RPC_STUB IWMStreamConfig_SetStreamNumber_Stub(
  8272.     IRpcStubBuffer *This,
  8273.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8274.     PRPC_MESSAGE _pRpcMessage,
  8275.     DWORD *_pdwStubPhase);
  8276.  
  8277.  
  8278. HRESULT STDMETHODCALLTYPE IWMStreamConfig_GetStreamName_Proxy( 
  8279.     IWMStreamConfig * This,
  8280.     /* [size_is][out] */ WCHAR *pwszStreamName,
  8281.     /* [out][in] */ WORD *pcchStreamName);
  8282.  
  8283.  
  8284. void __RPC_STUB IWMStreamConfig_GetStreamName_Stub(
  8285.     IRpcStubBuffer *This,
  8286.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8287.     PRPC_MESSAGE _pRpcMessage,
  8288.     DWORD *_pdwStubPhase);
  8289.  
  8290.  
  8291. HRESULT STDMETHODCALLTYPE IWMStreamConfig_SetStreamName_Proxy( 
  8292.     IWMStreamConfig * This,
  8293.     /* [in] */ WCHAR *pwszStreamName);
  8294.  
  8295.  
  8296. void __RPC_STUB IWMStreamConfig_SetStreamName_Stub(
  8297.     IRpcStubBuffer *This,
  8298.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8299.     PRPC_MESSAGE _pRpcMessage,
  8300.     DWORD *_pdwStubPhase);
  8301.  
  8302.  
  8303. HRESULT STDMETHODCALLTYPE IWMStreamConfig_GetConnectionName_Proxy( 
  8304.     IWMStreamConfig * This,
  8305.     /* [size_is][out] */ WCHAR *pwszInputName,
  8306.     /* [out][in] */ WORD *pcchInputName);
  8307.  
  8308.  
  8309. void __RPC_STUB IWMStreamConfig_GetConnectionName_Stub(
  8310.     IRpcStubBuffer *This,
  8311.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8312.     PRPC_MESSAGE _pRpcMessage,
  8313.     DWORD *_pdwStubPhase);
  8314.  
  8315.  
  8316. HRESULT STDMETHODCALLTYPE IWMStreamConfig_SetConnectionName_Proxy( 
  8317.     IWMStreamConfig * This,
  8318.     /* [in] */ WCHAR *pwszInputName);
  8319.  
  8320.  
  8321. void __RPC_STUB IWMStreamConfig_SetConnectionName_Stub(
  8322.     IRpcStubBuffer *This,
  8323.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8324.     PRPC_MESSAGE _pRpcMessage,
  8325.     DWORD *_pdwStubPhase);
  8326.  
  8327.  
  8328. HRESULT STDMETHODCALLTYPE IWMStreamConfig_GetBitrate_Proxy( 
  8329.     IWMStreamConfig * This,
  8330.     /* [out] */ DWORD *pdwBitrate);
  8331.  
  8332.  
  8333. void __RPC_STUB IWMStreamConfig_GetBitrate_Stub(
  8334.     IRpcStubBuffer *This,
  8335.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8336.     PRPC_MESSAGE _pRpcMessage,
  8337.     DWORD *_pdwStubPhase);
  8338.  
  8339.  
  8340. HRESULT STDMETHODCALLTYPE IWMStreamConfig_SetBitrate_Proxy( 
  8341.     IWMStreamConfig * This,
  8342.     /* [in] */ DWORD pdwBitrate);
  8343.  
  8344.  
  8345. void __RPC_STUB IWMStreamConfig_SetBitrate_Stub(
  8346.     IRpcStubBuffer *This,
  8347.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8348.     PRPC_MESSAGE _pRpcMessage,
  8349.     DWORD *_pdwStubPhase);
  8350.  
  8351.  
  8352. HRESULT STDMETHODCALLTYPE IWMStreamConfig_GetBufferWindow_Proxy( 
  8353.     IWMStreamConfig * This,
  8354.     /* [out] */ DWORD *pmsBufferWindow);
  8355.  
  8356.  
  8357. void __RPC_STUB IWMStreamConfig_GetBufferWindow_Stub(
  8358.     IRpcStubBuffer *This,
  8359.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8360.     PRPC_MESSAGE _pRpcMessage,
  8361.     DWORD *_pdwStubPhase);
  8362.  
  8363.  
  8364. HRESULT STDMETHODCALLTYPE IWMStreamConfig_SetBufferWindow_Proxy( 
  8365.     IWMStreamConfig * This,
  8366.     /* [in] */ DWORD msBufferWindow);
  8367.  
  8368.  
  8369. void __RPC_STUB IWMStreamConfig_SetBufferWindow_Stub(
  8370.     IRpcStubBuffer *This,
  8371.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8372.     PRPC_MESSAGE _pRpcMessage,
  8373.     DWORD *_pdwStubPhase);
  8374.  
  8375.  
  8376.  
  8377. #endif     /* __IWMStreamConfig_INTERFACE_DEFINED__ */
  8378.  
  8379.  
  8380. #ifndef __IWMStreamConfig2_INTERFACE_DEFINED__
  8381. #define __IWMStreamConfig2_INTERFACE_DEFINED__
  8382.  
  8383. /* interface IWMStreamConfig2 */
  8384. /* [local][unique][helpstring][uuid][object] */ 
  8385.  
  8386.  
  8387. EXTERN_C const IID IID_IWMStreamConfig2;
  8388.  
  8389. #if defined(__cplusplus) && !defined(CINTERFACE)
  8390.     
  8391.     MIDL_INTERFACE("7688D8CB-FC0D-43BD-9459-5A8DEC200CFA")
  8392.     IWMStreamConfig2 : public IWMStreamConfig
  8393.     {
  8394.     public:
  8395.         virtual HRESULT STDMETHODCALLTYPE GetTransportType( 
  8396.             /* [out] */ WMT_TRANSPORT_TYPE *pnTransportType) = 0;
  8397.         
  8398.         virtual HRESULT STDMETHODCALLTYPE SetTransportType( 
  8399.             /* [in] */ WMT_TRANSPORT_TYPE nTransportType) = 0;
  8400.         
  8401.         virtual HRESULT STDMETHODCALLTYPE AddDataUnitExtension( 
  8402.             /* [in] */ GUID guidExtensionSystemID,
  8403.             /* [in] */ WORD cbExtensionDataSize,
  8404.             /* [size_is][in] */ BYTE *pbExtensionSystemInfo,
  8405.             /* [in] */ DWORD cbExtensionSystemInfo) = 0;
  8406.         
  8407.         virtual HRESULT STDMETHODCALLTYPE GetDataUnitExtensionCount( 
  8408.             /* [out] */ WORD *pcDataUnitExtensions) = 0;
  8409.         
  8410.         virtual HRESULT STDMETHODCALLTYPE GetDataUnitExtension( 
  8411.             /* [in] */ WORD wDataUnitExtensionNumber,
  8412.             /* [out] */ GUID *pguidExtensionSystemID,
  8413.             /* [out] */ WORD *pcbExtensionDataSize,
  8414.             /* [size_is][out] */ BYTE *pbExtensionSystemInfo,
  8415.             /* [out][in] */ DWORD *pcbExtensionSystemInfo) = 0;
  8416.         
  8417.         virtual HRESULT STDMETHODCALLTYPE RemoveAllDataUnitExtensions( void) = 0;
  8418.         
  8419.     };
  8420.     
  8421. #else     /* C style interface */
  8422.  
  8423.     typedef struct IWMStreamConfig2Vtbl
  8424.     {
  8425.         BEGIN_INTERFACE
  8426.         
  8427.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  8428.             IWMStreamConfig2 * This,
  8429.             /* [in] */ REFIID riid,
  8430.             /* [iid_is][out] */ void **ppvObject);
  8431.         
  8432.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  8433.             IWMStreamConfig2 * This);
  8434.         
  8435.         ULONG ( STDMETHODCALLTYPE *Release )( 
  8436.             IWMStreamConfig2 * This);
  8437.         
  8438.         HRESULT ( STDMETHODCALLTYPE *GetStreamType )( 
  8439.             IWMStreamConfig2 * This,
  8440.             /* [out] */ GUID *pguidStreamType);
  8441.         
  8442.         HRESULT ( STDMETHODCALLTYPE *GetStreamNumber )( 
  8443.             IWMStreamConfig2 * This,
  8444.             /* [out] */ WORD *pwStreamNum);
  8445.         
  8446.         HRESULT ( STDMETHODCALLTYPE *SetStreamNumber )( 
  8447.             IWMStreamConfig2 * This,
  8448.             /* [in] */ WORD wStreamNum);
  8449.         
  8450.         HRESULT ( STDMETHODCALLTYPE *GetStreamName )( 
  8451.             IWMStreamConfig2 * This,
  8452.             /* [size_is][out] */ WCHAR *pwszStreamName,
  8453.             /* [out][in] */ WORD *pcchStreamName);
  8454.         
  8455.         HRESULT ( STDMETHODCALLTYPE *SetStreamName )( 
  8456.             IWMStreamConfig2 * This,
  8457.             /* [in] */ WCHAR *pwszStreamName);
  8458.         
  8459.         HRESULT ( STDMETHODCALLTYPE *GetConnectionName )( 
  8460.             IWMStreamConfig2 * This,
  8461.             /* [size_is][out] */ WCHAR *pwszInputName,
  8462.             /* [out][in] */ WORD *pcchInputName);
  8463.         
  8464.         HRESULT ( STDMETHODCALLTYPE *SetConnectionName )( 
  8465.             IWMStreamConfig2 * This,
  8466.             /* [in] */ WCHAR *pwszInputName);
  8467.         
  8468.         HRESULT ( STDMETHODCALLTYPE *GetBitrate )( 
  8469.             IWMStreamConfig2 * This,
  8470.             /* [out] */ DWORD *pdwBitrate);
  8471.         
  8472.         HRESULT ( STDMETHODCALLTYPE *SetBitrate )( 
  8473.             IWMStreamConfig2 * This,
  8474.             /* [in] */ DWORD pdwBitrate);
  8475.         
  8476.         HRESULT ( STDMETHODCALLTYPE *GetBufferWindow )( 
  8477.             IWMStreamConfig2 * This,
  8478.             /* [out] */ DWORD *pmsBufferWindow);
  8479.         
  8480.         HRESULT ( STDMETHODCALLTYPE *SetBufferWindow )( 
  8481.             IWMStreamConfig2 * This,
  8482.             /* [in] */ DWORD msBufferWindow);
  8483.         
  8484.         HRESULT ( STDMETHODCALLTYPE *GetTransportType )( 
  8485.             IWMStreamConfig2 * This,
  8486.             /* [out] */ WMT_TRANSPORT_TYPE *pnTransportType);
  8487.         
  8488.         HRESULT ( STDMETHODCALLTYPE *SetTransportType )( 
  8489.             IWMStreamConfig2 * This,
  8490.             /* [in] */ WMT_TRANSPORT_TYPE nTransportType);
  8491.         
  8492.         HRESULT ( STDMETHODCALLTYPE *AddDataUnitExtension )( 
  8493.             IWMStreamConfig2 * This,
  8494.             /* [in] */ GUID guidExtensionSystemID,
  8495.             /* [in] */ WORD cbExtensionDataSize,
  8496.             /* [size_is][in] */ BYTE *pbExtensionSystemInfo,
  8497.             /* [in] */ DWORD cbExtensionSystemInfo);
  8498.         
  8499.         HRESULT ( STDMETHODCALLTYPE *GetDataUnitExtensionCount )( 
  8500.             IWMStreamConfig2 * This,
  8501.             /* [out] */ WORD *pcDataUnitExtensions);
  8502.         
  8503.         HRESULT ( STDMETHODCALLTYPE *GetDataUnitExtension )( 
  8504.             IWMStreamConfig2 * This,
  8505.             /* [in] */ WORD wDataUnitExtensionNumber,
  8506.             /* [out] */ GUID *pguidExtensionSystemID,
  8507.             /* [out] */ WORD *pcbExtensionDataSize,
  8508.             /* [size_is][out] */ BYTE *pbExtensionSystemInfo,
  8509.             /* [out][in] */ DWORD *pcbExtensionSystemInfo);
  8510.         
  8511.         HRESULT ( STDMETHODCALLTYPE *RemoveAllDataUnitExtensions )( 
  8512.             IWMStreamConfig2 * This);
  8513.         
  8514.         END_INTERFACE
  8515.     } IWMStreamConfig2Vtbl;
  8516.  
  8517.     interface IWMStreamConfig2
  8518.     {
  8519.         CONST_VTBL struct IWMStreamConfig2Vtbl *lpVtbl;
  8520.     };
  8521.  
  8522.     
  8523.  
  8524. #ifdef COBJMACROS
  8525.  
  8526.  
  8527. #define IWMStreamConfig2_QueryInterface(This,riid,ppvObject)    \
  8528.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  8529.  
  8530. #define IWMStreamConfig2_AddRef(This)    \
  8531.     (This)->lpVtbl -> AddRef(This)
  8532.  
  8533. #define IWMStreamConfig2_Release(This)    \
  8534.     (This)->lpVtbl -> Release(This)
  8535.  
  8536.  
  8537. #define IWMStreamConfig2_GetStreamType(This,pguidStreamType)    \
  8538.     (This)->lpVtbl -> GetStreamType(This,pguidStreamType)
  8539.  
  8540. #define IWMStreamConfig2_GetStreamNumber(This,pwStreamNum)    \
  8541.     (This)->lpVtbl -> GetStreamNumber(This,pwStreamNum)
  8542.  
  8543. #define IWMStreamConfig2_SetStreamNumber(This,wStreamNum)    \
  8544.     (This)->lpVtbl -> SetStreamNumber(This,wStreamNum)
  8545.  
  8546. #define IWMStreamConfig2_GetStreamName(This,pwszStreamName,pcchStreamName)    \
  8547.     (This)->lpVtbl -> GetStreamName(This,pwszStreamName,pcchStreamName)
  8548.  
  8549. #define IWMStreamConfig2_SetStreamName(This,pwszStreamName)    \
  8550.     (This)->lpVtbl -> SetStreamName(This,pwszStreamName)
  8551.  
  8552. #define IWMStreamConfig2_GetConnectionName(This,pwszInputName,pcchInputName)    \
  8553.     (This)->lpVtbl -> GetConnectionName(This,pwszInputName,pcchInputName)
  8554.  
  8555. #define IWMStreamConfig2_SetConnectionName(This,pwszInputName)    \
  8556.     (This)->lpVtbl -> SetConnectionName(This,pwszInputName)
  8557.  
  8558. #define IWMStreamConfig2_GetBitrate(This,pdwBitrate)    \
  8559.     (This)->lpVtbl -> GetBitrate(This,pdwBitrate)
  8560.  
  8561. #define IWMStreamConfig2_SetBitrate(This,pdwBitrate)    \
  8562.     (This)->lpVtbl -> SetBitrate(This,pdwBitrate)
  8563.  
  8564. #define IWMStreamConfig2_GetBufferWindow(This,pmsBufferWindow)    \
  8565.     (This)->lpVtbl -> GetBufferWindow(This,pmsBufferWindow)
  8566.  
  8567. #define IWMStreamConfig2_SetBufferWindow(This,msBufferWindow)    \
  8568.     (This)->lpVtbl -> SetBufferWindow(This,msBufferWindow)
  8569.  
  8570.  
  8571. #define IWMStreamConfig2_GetTransportType(This,pnTransportType)    \
  8572.     (This)->lpVtbl -> GetTransportType(This,pnTransportType)
  8573.  
  8574. #define IWMStreamConfig2_SetTransportType(This,nTransportType)    \
  8575.     (This)->lpVtbl -> SetTransportType(This,nTransportType)
  8576.  
  8577. #define IWMStreamConfig2_AddDataUnitExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo)    \
  8578.     (This)->lpVtbl -> AddDataUnitExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo)
  8579.  
  8580. #define IWMStreamConfig2_GetDataUnitExtensionCount(This,pcDataUnitExtensions)    \
  8581.     (This)->lpVtbl -> GetDataUnitExtensionCount(This,pcDataUnitExtensions)
  8582.  
  8583. #define IWMStreamConfig2_GetDataUnitExtension(This,wDataUnitExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo)    \
  8584.     (This)->lpVtbl -> GetDataUnitExtension(This,wDataUnitExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo)
  8585.  
  8586. #define IWMStreamConfig2_RemoveAllDataUnitExtensions(This)    \
  8587.     (This)->lpVtbl -> RemoveAllDataUnitExtensions(This)
  8588.  
  8589. #endif /* COBJMACROS */
  8590.  
  8591.  
  8592. #endif     /* C style interface */
  8593.  
  8594.  
  8595.  
  8596. HRESULT STDMETHODCALLTYPE IWMStreamConfig2_GetTransportType_Proxy( 
  8597.     IWMStreamConfig2 * This,
  8598.     /* [out] */ WMT_TRANSPORT_TYPE *pnTransportType);
  8599.  
  8600.  
  8601. void __RPC_STUB IWMStreamConfig2_GetTransportType_Stub(
  8602.     IRpcStubBuffer *This,
  8603.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8604.     PRPC_MESSAGE _pRpcMessage,
  8605.     DWORD *_pdwStubPhase);
  8606.  
  8607.  
  8608. HRESULT STDMETHODCALLTYPE IWMStreamConfig2_SetTransportType_Proxy( 
  8609.     IWMStreamConfig2 * This,
  8610.     /* [in] */ WMT_TRANSPORT_TYPE nTransportType);
  8611.  
  8612.  
  8613. void __RPC_STUB IWMStreamConfig2_SetTransportType_Stub(
  8614.     IRpcStubBuffer *This,
  8615.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8616.     PRPC_MESSAGE _pRpcMessage,
  8617.     DWORD *_pdwStubPhase);
  8618.  
  8619.  
  8620. HRESULT STDMETHODCALLTYPE IWMStreamConfig2_AddDataUnitExtension_Proxy( 
  8621.     IWMStreamConfig2 * This,
  8622.     /* [in] */ GUID guidExtensionSystemID,
  8623.     /* [in] */ WORD cbExtensionDataSize,
  8624.     /* [size_is][in] */ BYTE *pbExtensionSystemInfo,
  8625.     /* [in] */ DWORD cbExtensionSystemInfo);
  8626.  
  8627.  
  8628. void __RPC_STUB IWMStreamConfig2_AddDataUnitExtension_Stub(
  8629.     IRpcStubBuffer *This,
  8630.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8631.     PRPC_MESSAGE _pRpcMessage,
  8632.     DWORD *_pdwStubPhase);
  8633.  
  8634.  
  8635. HRESULT STDMETHODCALLTYPE IWMStreamConfig2_GetDataUnitExtensionCount_Proxy( 
  8636.     IWMStreamConfig2 * This,
  8637.     /* [out] */ WORD *pcDataUnitExtensions);
  8638.  
  8639.  
  8640. void __RPC_STUB IWMStreamConfig2_GetDataUnitExtensionCount_Stub(
  8641.     IRpcStubBuffer *This,
  8642.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8643.     PRPC_MESSAGE _pRpcMessage,
  8644.     DWORD *_pdwStubPhase);
  8645.  
  8646.  
  8647. HRESULT STDMETHODCALLTYPE IWMStreamConfig2_GetDataUnitExtension_Proxy( 
  8648.     IWMStreamConfig2 * This,
  8649.     /* [in] */ WORD wDataUnitExtensionNumber,
  8650.     /* [out] */ GUID *pguidExtensionSystemID,
  8651.     /* [out] */ WORD *pcbExtensionDataSize,
  8652.     /* [size_is][out] */ BYTE *pbExtensionSystemInfo,
  8653.     /* [out][in] */ DWORD *pcbExtensionSystemInfo);
  8654.  
  8655.  
  8656. void __RPC_STUB IWMStreamConfig2_GetDataUnitExtension_Stub(
  8657.     IRpcStubBuffer *This,
  8658.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8659.     PRPC_MESSAGE _pRpcMessage,
  8660.     DWORD *_pdwStubPhase);
  8661.  
  8662.  
  8663. HRESULT STDMETHODCALLTYPE IWMStreamConfig2_RemoveAllDataUnitExtensions_Proxy( 
  8664.     IWMStreamConfig2 * This);
  8665.  
  8666.  
  8667. void __RPC_STUB IWMStreamConfig2_RemoveAllDataUnitExtensions_Stub(
  8668.     IRpcStubBuffer *This,
  8669.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8670.     PRPC_MESSAGE _pRpcMessage,
  8671.     DWORD *_pdwStubPhase);
  8672.  
  8673.  
  8674.  
  8675. #endif     /* __IWMStreamConfig2_INTERFACE_DEFINED__ */
  8676.  
  8677.  
  8678. #ifndef __IWMStreamConfig3_INTERFACE_DEFINED__
  8679. #define __IWMStreamConfig3_INTERFACE_DEFINED__
  8680.  
  8681. /* interface IWMStreamConfig3 */
  8682. /* [local][unique][helpstring][uuid][object] */ 
  8683.  
  8684.  
  8685. EXTERN_C const IID IID_IWMStreamConfig3;
  8686.  
  8687. #if defined(__cplusplus) && !defined(CINTERFACE)
  8688.     
  8689.     MIDL_INTERFACE("CB164104-3AA9-45a7-9AC9-4DAEE131D6E1")
  8690.     IWMStreamConfig3 : public IWMStreamConfig2
  8691.     {
  8692.     public:
  8693.         virtual HRESULT STDMETHODCALLTYPE GetLanguage( 
  8694.             /* [size_is][out] */ WCHAR *pwszLanguageString,
  8695.             /* [out][in] */ WORD *pcchLanguageStringLength) = 0;
  8696.         
  8697.         virtual HRESULT STDMETHODCALLTYPE SetLanguage( 
  8698.             /* [in] */ LPWSTR pwszLanguageString) = 0;
  8699.         
  8700.     };
  8701.     
  8702. #else     /* C style interface */
  8703.  
  8704.     typedef struct IWMStreamConfig3Vtbl
  8705.     {
  8706.         BEGIN_INTERFACE
  8707.         
  8708.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  8709.             IWMStreamConfig3 * This,
  8710.             /* [in] */ REFIID riid,
  8711.             /* [iid_is][out] */ void **ppvObject);
  8712.         
  8713.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  8714.             IWMStreamConfig3 * This);
  8715.         
  8716.         ULONG ( STDMETHODCALLTYPE *Release )( 
  8717.             IWMStreamConfig3 * This);
  8718.         
  8719.         HRESULT ( STDMETHODCALLTYPE *GetStreamType )( 
  8720.             IWMStreamConfig3 * This,
  8721.             /* [out] */ GUID *pguidStreamType);
  8722.         
  8723.         HRESULT ( STDMETHODCALLTYPE *GetStreamNumber )( 
  8724.             IWMStreamConfig3 * This,
  8725.             /* [out] */ WORD *pwStreamNum);
  8726.         
  8727.         HRESULT ( STDMETHODCALLTYPE *SetStreamNumber )( 
  8728.             IWMStreamConfig3 * This,
  8729.             /* [in] */ WORD wStreamNum);
  8730.         
  8731.         HRESULT ( STDMETHODCALLTYPE *GetStreamName )( 
  8732.             IWMStreamConfig3 * This,
  8733.             /* [size_is][out] */ WCHAR *pwszStreamName,
  8734.             /* [out][in] */ WORD *pcchStreamName);
  8735.         
  8736.         HRESULT ( STDMETHODCALLTYPE *SetStreamName )( 
  8737.             IWMStreamConfig3 * This,
  8738.             /* [in] */ WCHAR *pwszStreamName);
  8739.         
  8740.         HRESULT ( STDMETHODCALLTYPE *GetConnectionName )( 
  8741.             IWMStreamConfig3 * This,
  8742.             /* [size_is][out] */ WCHAR *pwszInputName,
  8743.             /* [out][in] */ WORD *pcchInputName);
  8744.         
  8745.         HRESULT ( STDMETHODCALLTYPE *SetConnectionName )( 
  8746.             IWMStreamConfig3 * This,
  8747.             /* [in] */ WCHAR *pwszInputName);
  8748.         
  8749.         HRESULT ( STDMETHODCALLTYPE *GetBitrate )( 
  8750.             IWMStreamConfig3 * This,
  8751.             /* [out] */ DWORD *pdwBitrate);
  8752.         
  8753.         HRESULT ( STDMETHODCALLTYPE *SetBitrate )( 
  8754.             IWMStreamConfig3 * This,
  8755.             /* [in] */ DWORD pdwBitrate);
  8756.         
  8757.         HRESULT ( STDMETHODCALLTYPE *GetBufferWindow )( 
  8758.             IWMStreamConfig3 * This,
  8759.             /* [out] */ DWORD *pmsBufferWindow);
  8760.         
  8761.         HRESULT ( STDMETHODCALLTYPE *SetBufferWindow )( 
  8762.             IWMStreamConfig3 * This,
  8763.             /* [in] */ DWORD msBufferWindow);
  8764.         
  8765.         HRESULT ( STDMETHODCALLTYPE *GetTransportType )( 
  8766.             IWMStreamConfig3 * This,
  8767.             /* [out] */ WMT_TRANSPORT_TYPE *pnTransportType);
  8768.         
  8769.         HRESULT ( STDMETHODCALLTYPE *SetTransportType )( 
  8770.             IWMStreamConfig3 * This,
  8771.             /* [in] */ WMT_TRANSPORT_TYPE nTransportType);
  8772.         
  8773.         HRESULT ( STDMETHODCALLTYPE *AddDataUnitExtension )( 
  8774.             IWMStreamConfig3 * This,
  8775.             /* [in] */ GUID guidExtensionSystemID,
  8776.             /* [in] */ WORD cbExtensionDataSize,
  8777.             /* [size_is][in] */ BYTE *pbExtensionSystemInfo,
  8778.             /* [in] */ DWORD cbExtensionSystemInfo);
  8779.         
  8780.         HRESULT ( STDMETHODCALLTYPE *GetDataUnitExtensionCount )( 
  8781.             IWMStreamConfig3 * This,
  8782.             /* [out] */ WORD *pcDataUnitExtensions);
  8783.         
  8784.         HRESULT ( STDMETHODCALLTYPE *GetDataUnitExtension )( 
  8785.             IWMStreamConfig3 * This,
  8786.             /* [in] */ WORD wDataUnitExtensionNumber,
  8787.             /* [out] */ GUID *pguidExtensionSystemID,
  8788.             /* [out] */ WORD *pcbExtensionDataSize,
  8789.             /* [size_is][out] */ BYTE *pbExtensionSystemInfo,
  8790.             /* [out][in] */ DWORD *pcbExtensionSystemInfo);
  8791.         
  8792.         HRESULT ( STDMETHODCALLTYPE *RemoveAllDataUnitExtensions )( 
  8793.             IWMStreamConfig3 * This);
  8794.         
  8795.         HRESULT ( STDMETHODCALLTYPE *GetLanguage )( 
  8796.             IWMStreamConfig3 * This,
  8797.             /* [size_is][out] */ WCHAR *pwszLanguageString,
  8798.             /* [out][in] */ WORD *pcchLanguageStringLength);
  8799.         
  8800.         HRESULT ( STDMETHODCALLTYPE *SetLanguage )( 
  8801.             IWMStreamConfig3 * This,
  8802.             /* [in] */ LPWSTR pwszLanguageString);
  8803.         
  8804.         END_INTERFACE
  8805.     } IWMStreamConfig3Vtbl;
  8806.  
  8807.     interface IWMStreamConfig3
  8808.     {
  8809.         CONST_VTBL struct IWMStreamConfig3Vtbl *lpVtbl;
  8810.     };
  8811.  
  8812.     
  8813.  
  8814. #ifdef COBJMACROS
  8815.  
  8816.  
  8817. #define IWMStreamConfig3_QueryInterface(This,riid,ppvObject)    \
  8818.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  8819.  
  8820. #define IWMStreamConfig3_AddRef(This)    \
  8821.     (This)->lpVtbl -> AddRef(This)
  8822.  
  8823. #define IWMStreamConfig3_Release(This)    \
  8824.     (This)->lpVtbl -> Release(This)
  8825.  
  8826.  
  8827. #define IWMStreamConfig3_GetStreamType(This,pguidStreamType)    \
  8828.     (This)->lpVtbl -> GetStreamType(This,pguidStreamType)
  8829.  
  8830. #define IWMStreamConfig3_GetStreamNumber(This,pwStreamNum)    \
  8831.     (This)->lpVtbl -> GetStreamNumber(This,pwStreamNum)
  8832.  
  8833. #define IWMStreamConfig3_SetStreamNumber(This,wStreamNum)    \
  8834.     (This)->lpVtbl -> SetStreamNumber(This,wStreamNum)
  8835.  
  8836. #define IWMStreamConfig3_GetStreamName(This,pwszStreamName,pcchStreamName)    \
  8837.     (This)->lpVtbl -> GetStreamName(This,pwszStreamName,pcchStreamName)
  8838.  
  8839. #define IWMStreamConfig3_SetStreamName(This,pwszStreamName)    \
  8840.     (This)->lpVtbl -> SetStreamName(This,pwszStreamName)
  8841.  
  8842. #define IWMStreamConfig3_GetConnectionName(This,pwszInputName,pcchInputName)    \
  8843.     (This)->lpVtbl -> GetConnectionName(This,pwszInputName,pcchInputName)
  8844.  
  8845. #define IWMStreamConfig3_SetConnectionName(This,pwszInputName)    \
  8846.     (This)->lpVtbl -> SetConnectionName(This,pwszInputName)
  8847.  
  8848. #define IWMStreamConfig3_GetBitrate(This,pdwBitrate)    \
  8849.     (This)->lpVtbl -> GetBitrate(This,pdwBitrate)
  8850.  
  8851. #define IWMStreamConfig3_SetBitrate(This,pdwBitrate)    \
  8852.     (This)->lpVtbl -> SetBitrate(This,pdwBitrate)
  8853.  
  8854. #define IWMStreamConfig3_GetBufferWindow(This,pmsBufferWindow)    \
  8855.     (This)->lpVtbl -> GetBufferWindow(This,pmsBufferWindow)
  8856.  
  8857. #define IWMStreamConfig3_SetBufferWindow(This,msBufferWindow)    \
  8858.     (This)->lpVtbl -> SetBufferWindow(This,msBufferWindow)
  8859.  
  8860.  
  8861. #define IWMStreamConfig3_GetTransportType(This,pnTransportType)    \
  8862.     (This)->lpVtbl -> GetTransportType(This,pnTransportType)
  8863.  
  8864. #define IWMStreamConfig3_SetTransportType(This,nTransportType)    \
  8865.     (This)->lpVtbl -> SetTransportType(This,nTransportType)
  8866.  
  8867. #define IWMStreamConfig3_AddDataUnitExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo)    \
  8868.     (This)->lpVtbl -> AddDataUnitExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo)
  8869.  
  8870. #define IWMStreamConfig3_GetDataUnitExtensionCount(This,pcDataUnitExtensions)    \
  8871.     (This)->lpVtbl -> GetDataUnitExtensionCount(This,pcDataUnitExtensions)
  8872.  
  8873. #define IWMStreamConfig3_GetDataUnitExtension(This,wDataUnitExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo)    \
  8874.     (This)->lpVtbl -> GetDataUnitExtension(This,wDataUnitExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo)
  8875.  
  8876. #define IWMStreamConfig3_RemoveAllDataUnitExtensions(This)    \
  8877.     (This)->lpVtbl -> RemoveAllDataUnitExtensions(This)
  8878.  
  8879.  
  8880. #define IWMStreamConfig3_GetLanguage(This,pwszLanguageString,pcchLanguageStringLength)    \
  8881.     (This)->lpVtbl -> GetLanguage(This,pwszLanguageString,pcchLanguageStringLength)
  8882.  
  8883. #define IWMStreamConfig3_SetLanguage(This,pwszLanguageString)    \
  8884.     (This)->lpVtbl -> SetLanguage(This,pwszLanguageString)
  8885.  
  8886. #endif /* COBJMACROS */
  8887.  
  8888.  
  8889. #endif     /* C style interface */
  8890.  
  8891.  
  8892.  
  8893. HRESULT STDMETHODCALLTYPE IWMStreamConfig3_GetLanguage_Proxy( 
  8894.     IWMStreamConfig3 * This,
  8895.     /* [size_is][out] */ WCHAR *pwszLanguageString,
  8896.     /* [out][in] */ WORD *pcchLanguageStringLength);
  8897.  
  8898.  
  8899. void __RPC_STUB IWMStreamConfig3_GetLanguage_Stub(
  8900.     IRpcStubBuffer *This,
  8901.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8902.     PRPC_MESSAGE _pRpcMessage,
  8903.     DWORD *_pdwStubPhase);
  8904.  
  8905.  
  8906. HRESULT STDMETHODCALLTYPE IWMStreamConfig3_SetLanguage_Proxy( 
  8907.     IWMStreamConfig3 * This,
  8908.     /* [in] */ LPWSTR pwszLanguageString);
  8909.  
  8910.  
  8911. void __RPC_STUB IWMStreamConfig3_SetLanguage_Stub(
  8912.     IRpcStubBuffer *This,
  8913.     IRpcChannelBuffer *_pRpcChannelBuffer,
  8914.     PRPC_MESSAGE _pRpcMessage,
  8915.     DWORD *_pdwStubPhase);
  8916.  
  8917.  
  8918.  
  8919. #endif     /* __IWMStreamConfig3_INTERFACE_DEFINED__ */
  8920.  
  8921.  
  8922. #ifndef __IWMPacketSize_INTERFACE_DEFINED__
  8923. #define __IWMPacketSize_INTERFACE_DEFINED__
  8924.  
  8925. /* interface IWMPacketSize */
  8926. /* [local][unique][helpstring][uuid][object] */ 
  8927.  
  8928.  
  8929. EXTERN_C const IID IID_IWMPacketSize;
  8930.  
  8931. #if defined(__cplusplus) && !defined(CINTERFACE)
  8932.     
  8933.     MIDL_INTERFACE("CDFB97AB-188F-40b3-B643-5B7903975C59")
  8934.     IWMPacketSize : public IUnknown
  8935.     {
  8936.     public:
  8937.         virtual HRESULT STDMETHODCALLTYPE GetMaxPacketSize( 
  8938.             /* [out] */ DWORD *pdwMaxPacketSize) = 0;
  8939.         
  8940.         virtual HRESULT STDMETHODCALLTYPE SetMaxPacketSize( 
  8941.             /* [in] */ DWORD dwMaxPacketSize) = 0;
  8942.         
  8943.     };
  8944.     
  8945. #else     /* C style interface */
  8946.  
  8947.     typedef struct IWMPacketSizeVtbl
  8948.     {
  8949.         BEGIN_INTERFACE
  8950.         
  8951.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  8952.             IWMPacketSize * This,
  8953.             /* [in] */ REFIID riid,
  8954.             /* [iid_is][out] */ void **ppvObject);
  8955.         
  8956.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  8957.             IWMPacketSize * This);
  8958.         
  8959.         ULONG ( STDMETHODCALLTYPE *Release )( 
  8960.             IWMPacketSize * This);
  8961.         
  8962.         HRESULT ( STDMETHODCALLTYPE *GetMaxPacketSize )( 
  8963.             IWMPacketSize * This,
  8964.             /* [out] */ DWORD *pdwMaxPacketSize);
  8965.         
  8966.         HRESULT ( STDMETHODCALLTYPE *SetMaxPacketSize )( 
  8967.             IWMPacketSize * This,
  8968.             /* [in] */ DWORD dwMaxPacketSize);
  8969.         
  8970.         END_INTERFACE
  8971.     } IWMPacketSizeVtbl;
  8972.  
  8973.     interface IWMPacketSize
  8974.     {
  8975.         CONST_VTBL struct IWMPacketSizeVtbl *lpVtbl;
  8976.     };
  8977.  
  8978.     
  8979.  
  8980. #ifdef COBJMACROS
  8981.  
  8982.  
  8983. #define IWMPacketSize_QueryInterface(This,riid,ppvObject)    \
  8984.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  8985.  
  8986. #define IWMPacketSize_AddRef(This)    \
  8987.     (This)->lpVtbl -> AddRef(This)
  8988.  
  8989. #define IWMPacketSize_Release(This)    \
  8990.     (This)->lpVtbl -> Release(This)
  8991.  
  8992.  
  8993. #define IWMPacketSize_GetMaxPacketSize(This,pdwMaxPacketSize)    \
  8994.     (This)->lpVtbl -> GetMaxPacketSize(This,pdwMaxPacketSize)
  8995.  
  8996. #define IWMPacketSize_SetMaxPacketSize(This,dwMaxPacketSize)    \
  8997.     (This)->lpVtbl -> SetMaxPacketSize(This,dwMaxPacketSize)
  8998.  
  8999. #endif /* COBJMACROS */
  9000.  
  9001.  
  9002. #endif     /* C style interface */
  9003.  
  9004.  
  9005.  
  9006. HRESULT STDMETHODCALLTYPE IWMPacketSize_GetMaxPacketSize_Proxy( 
  9007.     IWMPacketSize * This,
  9008.     /* [out] */ DWORD *pdwMaxPacketSize);
  9009.  
  9010.  
  9011. void __RPC_STUB IWMPacketSize_GetMaxPacketSize_Stub(
  9012.     IRpcStubBuffer *This,
  9013.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9014.     PRPC_MESSAGE _pRpcMessage,
  9015.     DWORD *_pdwStubPhase);
  9016.  
  9017.  
  9018. HRESULT STDMETHODCALLTYPE IWMPacketSize_SetMaxPacketSize_Proxy( 
  9019.     IWMPacketSize * This,
  9020.     /* [in] */ DWORD dwMaxPacketSize);
  9021.  
  9022.  
  9023. void __RPC_STUB IWMPacketSize_SetMaxPacketSize_Stub(
  9024.     IRpcStubBuffer *This,
  9025.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9026.     PRPC_MESSAGE _pRpcMessage,
  9027.     DWORD *_pdwStubPhase);
  9028.  
  9029.  
  9030.  
  9031. #endif     /* __IWMPacketSize_INTERFACE_DEFINED__ */
  9032.  
  9033.  
  9034. #ifndef __IWMPacketSize2_INTERFACE_DEFINED__
  9035. #define __IWMPacketSize2_INTERFACE_DEFINED__
  9036.  
  9037. /* interface IWMPacketSize2 */
  9038. /* [local][unique][helpstring][uuid][object] */ 
  9039.  
  9040.  
  9041. EXTERN_C const IID IID_IWMPacketSize2;
  9042.  
  9043. #if defined(__cplusplus) && !defined(CINTERFACE)
  9044.     
  9045.     MIDL_INTERFACE("8BFC2B9E-B646-4233-A877-1C6A079669DC")
  9046.     IWMPacketSize2 : public IWMPacketSize
  9047.     {
  9048.     public:
  9049.         virtual HRESULT STDMETHODCALLTYPE GetMinPacketSize( 
  9050.             /* [out] */ DWORD *pdwMinPacketSize) = 0;
  9051.         
  9052.         virtual HRESULT STDMETHODCALLTYPE SetMinPacketSize( 
  9053.             /* [in] */ DWORD dwMinPacketSize) = 0;
  9054.         
  9055.     };
  9056.     
  9057. #else     /* C style interface */
  9058.  
  9059.     typedef struct IWMPacketSize2Vtbl
  9060.     {
  9061.         BEGIN_INTERFACE
  9062.         
  9063.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  9064.             IWMPacketSize2 * This,
  9065.             /* [in] */ REFIID riid,
  9066.             /* [iid_is][out] */ void **ppvObject);
  9067.         
  9068.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  9069.             IWMPacketSize2 * This);
  9070.         
  9071.         ULONG ( STDMETHODCALLTYPE *Release )( 
  9072.             IWMPacketSize2 * This);
  9073.         
  9074.         HRESULT ( STDMETHODCALLTYPE *GetMaxPacketSize )( 
  9075.             IWMPacketSize2 * This,
  9076.             /* [out] */ DWORD *pdwMaxPacketSize);
  9077.         
  9078.         HRESULT ( STDMETHODCALLTYPE *SetMaxPacketSize )( 
  9079.             IWMPacketSize2 * This,
  9080.             /* [in] */ DWORD dwMaxPacketSize);
  9081.         
  9082.         HRESULT ( STDMETHODCALLTYPE *GetMinPacketSize )( 
  9083.             IWMPacketSize2 * This,
  9084.             /* [out] */ DWORD *pdwMinPacketSize);
  9085.         
  9086.         HRESULT ( STDMETHODCALLTYPE *SetMinPacketSize )( 
  9087.             IWMPacketSize2 * This,
  9088.             /* [in] */ DWORD dwMinPacketSize);
  9089.         
  9090.         END_INTERFACE
  9091.     } IWMPacketSize2Vtbl;
  9092.  
  9093.     interface IWMPacketSize2
  9094.     {
  9095.         CONST_VTBL struct IWMPacketSize2Vtbl *lpVtbl;
  9096.     };
  9097.  
  9098.     
  9099.  
  9100. #ifdef COBJMACROS
  9101.  
  9102.  
  9103. #define IWMPacketSize2_QueryInterface(This,riid,ppvObject)    \
  9104.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  9105.  
  9106. #define IWMPacketSize2_AddRef(This)    \
  9107.     (This)->lpVtbl -> AddRef(This)
  9108.  
  9109. #define IWMPacketSize2_Release(This)    \
  9110.     (This)->lpVtbl -> Release(This)
  9111.  
  9112.  
  9113. #define IWMPacketSize2_GetMaxPacketSize(This,pdwMaxPacketSize)    \
  9114.     (This)->lpVtbl -> GetMaxPacketSize(This,pdwMaxPacketSize)
  9115.  
  9116. #define IWMPacketSize2_SetMaxPacketSize(This,dwMaxPacketSize)    \
  9117.     (This)->lpVtbl -> SetMaxPacketSize(This,dwMaxPacketSize)
  9118.  
  9119.  
  9120. #define IWMPacketSize2_GetMinPacketSize(This,pdwMinPacketSize)    \
  9121.     (This)->lpVtbl -> GetMinPacketSize(This,pdwMinPacketSize)
  9122.  
  9123. #define IWMPacketSize2_SetMinPacketSize(This,dwMinPacketSize)    \
  9124.     (This)->lpVtbl -> SetMinPacketSize(This,dwMinPacketSize)
  9125.  
  9126. #endif /* COBJMACROS */
  9127.  
  9128.  
  9129. #endif     /* C style interface */
  9130.  
  9131.  
  9132.  
  9133. HRESULT STDMETHODCALLTYPE IWMPacketSize2_GetMinPacketSize_Proxy( 
  9134.     IWMPacketSize2 * This,
  9135.     /* [out] */ DWORD *pdwMinPacketSize);
  9136.  
  9137.  
  9138. void __RPC_STUB IWMPacketSize2_GetMinPacketSize_Stub(
  9139.     IRpcStubBuffer *This,
  9140.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9141.     PRPC_MESSAGE _pRpcMessage,
  9142.     DWORD *_pdwStubPhase);
  9143.  
  9144.  
  9145. HRESULT STDMETHODCALLTYPE IWMPacketSize2_SetMinPacketSize_Proxy( 
  9146.     IWMPacketSize2 * This,
  9147.     /* [in] */ DWORD dwMinPacketSize);
  9148.  
  9149.  
  9150. void __RPC_STUB IWMPacketSize2_SetMinPacketSize_Stub(
  9151.     IRpcStubBuffer *This,
  9152.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9153.     PRPC_MESSAGE _pRpcMessage,
  9154.     DWORD *_pdwStubPhase);
  9155.  
  9156.  
  9157.  
  9158. #endif     /* __IWMPacketSize2_INTERFACE_DEFINED__ */
  9159.  
  9160.  
  9161. #ifndef __IWMStreamList_INTERFACE_DEFINED__
  9162. #define __IWMStreamList_INTERFACE_DEFINED__
  9163.  
  9164. /* interface IWMStreamList */
  9165. /* [local][unique][helpstring][uuid][object] */ 
  9166.  
  9167.  
  9168. EXTERN_C const IID IID_IWMStreamList;
  9169.  
  9170. #if defined(__cplusplus) && !defined(CINTERFACE)
  9171.     
  9172.     MIDL_INTERFACE("96406BDD-2B2B-11d3-B36B-00C04F6108FF")
  9173.     IWMStreamList : public IUnknown
  9174.     {
  9175.     public:
  9176.         virtual HRESULT STDMETHODCALLTYPE GetStreams( 
  9177.             /* [size_is][out] */ WORD *pwStreamNumArray,
  9178.             /* [out][in] */ WORD *pcStreams) = 0;
  9179.         
  9180.         virtual HRESULT STDMETHODCALLTYPE AddStream( 
  9181.             /* [in] */ WORD wStreamNum) = 0;
  9182.         
  9183.         virtual HRESULT STDMETHODCALLTYPE RemoveStream( 
  9184.             /* [in] */ WORD wStreamNum) = 0;
  9185.         
  9186.     };
  9187.     
  9188. #else     /* C style interface */
  9189.  
  9190.     typedef struct IWMStreamListVtbl
  9191.     {
  9192.         BEGIN_INTERFACE
  9193.         
  9194.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  9195.             IWMStreamList * This,
  9196.             /* [in] */ REFIID riid,
  9197.             /* [iid_is][out] */ void **ppvObject);
  9198.         
  9199.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  9200.             IWMStreamList * This);
  9201.         
  9202.         ULONG ( STDMETHODCALLTYPE *Release )( 
  9203.             IWMStreamList * This);
  9204.         
  9205.         HRESULT ( STDMETHODCALLTYPE *GetStreams )( 
  9206.             IWMStreamList * This,
  9207.             /* [size_is][out] */ WORD *pwStreamNumArray,
  9208.             /* [out][in] */ WORD *pcStreams);
  9209.         
  9210.         HRESULT ( STDMETHODCALLTYPE *AddStream )( 
  9211.             IWMStreamList * This,
  9212.             /* [in] */ WORD wStreamNum);
  9213.         
  9214.         HRESULT ( STDMETHODCALLTYPE *RemoveStream )( 
  9215.             IWMStreamList * This,
  9216.             /* [in] */ WORD wStreamNum);
  9217.         
  9218.         END_INTERFACE
  9219.     } IWMStreamListVtbl;
  9220.  
  9221.     interface IWMStreamList
  9222.     {
  9223.         CONST_VTBL struct IWMStreamListVtbl *lpVtbl;
  9224.     };
  9225.  
  9226.     
  9227.  
  9228. #ifdef COBJMACROS
  9229.  
  9230.  
  9231. #define IWMStreamList_QueryInterface(This,riid,ppvObject)    \
  9232.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  9233.  
  9234. #define IWMStreamList_AddRef(This)    \
  9235.     (This)->lpVtbl -> AddRef(This)
  9236.  
  9237. #define IWMStreamList_Release(This)    \
  9238.     (This)->lpVtbl -> Release(This)
  9239.  
  9240.  
  9241. #define IWMStreamList_GetStreams(This,pwStreamNumArray,pcStreams)    \
  9242.     (This)->lpVtbl -> GetStreams(This,pwStreamNumArray,pcStreams)
  9243.  
  9244. #define IWMStreamList_AddStream(This,wStreamNum)    \
  9245.     (This)->lpVtbl -> AddStream(This,wStreamNum)
  9246.  
  9247. #define IWMStreamList_RemoveStream(This,wStreamNum)    \
  9248.     (This)->lpVtbl -> RemoveStream(This,wStreamNum)
  9249.  
  9250. #endif /* COBJMACROS */
  9251.  
  9252.  
  9253. #endif     /* C style interface */
  9254.  
  9255.  
  9256.  
  9257. HRESULT STDMETHODCALLTYPE IWMStreamList_GetStreams_Proxy( 
  9258.     IWMStreamList * This,
  9259.     /* [size_is][out] */ WORD *pwStreamNumArray,
  9260.     /* [out][in] */ WORD *pcStreams);
  9261.  
  9262.  
  9263. void __RPC_STUB IWMStreamList_GetStreams_Stub(
  9264.     IRpcStubBuffer *This,
  9265.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9266.     PRPC_MESSAGE _pRpcMessage,
  9267.     DWORD *_pdwStubPhase);
  9268.  
  9269.  
  9270. HRESULT STDMETHODCALLTYPE IWMStreamList_AddStream_Proxy( 
  9271.     IWMStreamList * This,
  9272.     /* [in] */ WORD wStreamNum);
  9273.  
  9274.  
  9275. void __RPC_STUB IWMStreamList_AddStream_Stub(
  9276.     IRpcStubBuffer *This,
  9277.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9278.     PRPC_MESSAGE _pRpcMessage,
  9279.     DWORD *_pdwStubPhase);
  9280.  
  9281.  
  9282. HRESULT STDMETHODCALLTYPE IWMStreamList_RemoveStream_Proxy( 
  9283.     IWMStreamList * This,
  9284.     /* [in] */ WORD wStreamNum);
  9285.  
  9286.  
  9287. void __RPC_STUB IWMStreamList_RemoveStream_Stub(
  9288.     IRpcStubBuffer *This,
  9289.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9290.     PRPC_MESSAGE _pRpcMessage,
  9291.     DWORD *_pdwStubPhase);
  9292.  
  9293.  
  9294.  
  9295. #endif     /* __IWMStreamList_INTERFACE_DEFINED__ */
  9296.  
  9297.  
  9298. #ifndef __IWMMutualExclusion_INTERFACE_DEFINED__
  9299. #define __IWMMutualExclusion_INTERFACE_DEFINED__
  9300.  
  9301. /* interface IWMMutualExclusion */
  9302. /* [local][unique][helpstring][uuid][object] */ 
  9303.  
  9304.  
  9305. EXTERN_C const IID IID_IWMMutualExclusion;
  9306.  
  9307. #if defined(__cplusplus) && !defined(CINTERFACE)
  9308.     
  9309.     MIDL_INTERFACE("96406BDE-2B2B-11d3-B36B-00C04F6108FF")
  9310.     IWMMutualExclusion : public IWMStreamList
  9311.     {
  9312.     public:
  9313.         virtual HRESULT STDMETHODCALLTYPE GetType( 
  9314.             /* [out] */ GUID *pguidType) = 0;
  9315.         
  9316.         virtual HRESULT STDMETHODCALLTYPE SetType( 
  9317.             /* [in] */ REFGUID guidType) = 0;
  9318.         
  9319.     };
  9320.     
  9321. #else     /* C style interface */
  9322.  
  9323.     typedef struct IWMMutualExclusionVtbl
  9324.     {
  9325.         BEGIN_INTERFACE
  9326.         
  9327.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  9328.             IWMMutualExclusion * This,
  9329.             /* [in] */ REFIID riid,
  9330.             /* [iid_is][out] */ void **ppvObject);
  9331.         
  9332.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  9333.             IWMMutualExclusion * This);
  9334.         
  9335.         ULONG ( STDMETHODCALLTYPE *Release )( 
  9336.             IWMMutualExclusion * This);
  9337.         
  9338.         HRESULT ( STDMETHODCALLTYPE *GetStreams )( 
  9339.             IWMMutualExclusion * This,
  9340.             /* [size_is][out] */ WORD *pwStreamNumArray,
  9341.             /* [out][in] */ WORD *pcStreams);
  9342.         
  9343.         HRESULT ( STDMETHODCALLTYPE *AddStream )( 
  9344.             IWMMutualExclusion * This,
  9345.             /* [in] */ WORD wStreamNum);
  9346.         
  9347.         HRESULT ( STDMETHODCALLTYPE *RemoveStream )( 
  9348.             IWMMutualExclusion * This,
  9349.             /* [in] */ WORD wStreamNum);
  9350.         
  9351.         HRESULT ( STDMETHODCALLTYPE *GetType )( 
  9352.             IWMMutualExclusion * This,
  9353.             /* [out] */ GUID *pguidType);
  9354.         
  9355.         HRESULT ( STDMETHODCALLTYPE *SetType )( 
  9356.             IWMMutualExclusion * This,
  9357.             /* [in] */ REFGUID guidType);
  9358.         
  9359.         END_INTERFACE
  9360.     } IWMMutualExclusionVtbl;
  9361.  
  9362.     interface IWMMutualExclusion
  9363.     {
  9364.         CONST_VTBL struct IWMMutualExclusionVtbl *lpVtbl;
  9365.     };
  9366.  
  9367.     
  9368.  
  9369. #ifdef COBJMACROS
  9370.  
  9371.  
  9372. #define IWMMutualExclusion_QueryInterface(This,riid,ppvObject)    \
  9373.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  9374.  
  9375. #define IWMMutualExclusion_AddRef(This)    \
  9376.     (This)->lpVtbl -> AddRef(This)
  9377.  
  9378. #define IWMMutualExclusion_Release(This)    \
  9379.     (This)->lpVtbl -> Release(This)
  9380.  
  9381.  
  9382. #define IWMMutualExclusion_GetStreams(This,pwStreamNumArray,pcStreams)    \
  9383.     (This)->lpVtbl -> GetStreams(This,pwStreamNumArray,pcStreams)
  9384.  
  9385. #define IWMMutualExclusion_AddStream(This,wStreamNum)    \
  9386.     (This)->lpVtbl -> AddStream(This,wStreamNum)
  9387.  
  9388. #define IWMMutualExclusion_RemoveStream(This,wStreamNum)    \
  9389.     (This)->lpVtbl -> RemoveStream(This,wStreamNum)
  9390.  
  9391.  
  9392. #define IWMMutualExclusion_GetType(This,pguidType)    \
  9393.     (This)->lpVtbl -> GetType(This,pguidType)
  9394.  
  9395. #define IWMMutualExclusion_SetType(This,guidType)    \
  9396.     (This)->lpVtbl -> SetType(This,guidType)
  9397.  
  9398. #endif /* COBJMACROS */
  9399.  
  9400.  
  9401. #endif     /* C style interface */
  9402.  
  9403.  
  9404.  
  9405. HRESULT STDMETHODCALLTYPE IWMMutualExclusion_GetType_Proxy( 
  9406.     IWMMutualExclusion * This,
  9407.     /* [out] */ GUID *pguidType);
  9408.  
  9409.  
  9410. void __RPC_STUB IWMMutualExclusion_GetType_Stub(
  9411.     IRpcStubBuffer *This,
  9412.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9413.     PRPC_MESSAGE _pRpcMessage,
  9414.     DWORD *_pdwStubPhase);
  9415.  
  9416.  
  9417. HRESULT STDMETHODCALLTYPE IWMMutualExclusion_SetType_Proxy( 
  9418.     IWMMutualExclusion * This,
  9419.     /* [in] */ REFGUID guidType);
  9420.  
  9421.  
  9422. void __RPC_STUB IWMMutualExclusion_SetType_Stub(
  9423.     IRpcStubBuffer *This,
  9424.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9425.     PRPC_MESSAGE _pRpcMessage,
  9426.     DWORD *_pdwStubPhase);
  9427.  
  9428.  
  9429.  
  9430. #endif     /* __IWMMutualExclusion_INTERFACE_DEFINED__ */
  9431.  
  9432.  
  9433. #ifndef __IWMMutualExclusion2_INTERFACE_DEFINED__
  9434. #define __IWMMutualExclusion2_INTERFACE_DEFINED__
  9435.  
  9436. /* interface IWMMutualExclusion2 */
  9437. /* [local][unique][helpstring][uuid][object] */ 
  9438.  
  9439.  
  9440. EXTERN_C const IID IID_IWMMutualExclusion2;
  9441.  
  9442. #if defined(__cplusplus) && !defined(CINTERFACE)
  9443.     
  9444.     MIDL_INTERFACE("0302B57D-89D1-4ba2-85C9-166F2C53EB91")
  9445.     IWMMutualExclusion2 : public IWMMutualExclusion
  9446.     {
  9447.     public:
  9448.         virtual HRESULT STDMETHODCALLTYPE GetName( 
  9449.             /* [size_is][out] */ WCHAR *pwszName,
  9450.             /* [out][in] */ WORD *pcchName) = 0;
  9451.         
  9452.         virtual HRESULT STDMETHODCALLTYPE SetName( 
  9453.             /* [in] */ WCHAR *pwszName) = 0;
  9454.         
  9455.         virtual HRESULT STDMETHODCALLTYPE GetRecordCount( 
  9456.             /* [out] */ WORD *pwRecordCount) = 0;
  9457.         
  9458.         virtual HRESULT STDMETHODCALLTYPE AddRecord( void) = 0;
  9459.         
  9460.         virtual HRESULT STDMETHODCALLTYPE RemoveRecord( 
  9461.             /* [in] */ WORD wRecordNumber) = 0;
  9462.         
  9463.         virtual HRESULT STDMETHODCALLTYPE GetRecordName( 
  9464.             /* [in] */ WORD wRecordNumber,
  9465.             /* [size_is][out] */ WCHAR *pwszRecordName,
  9466.             /* [out][in] */ WORD *pcchRecordName) = 0;
  9467.         
  9468.         virtual HRESULT STDMETHODCALLTYPE SetRecordName( 
  9469.             /* [in] */ WORD wRecordNumber,
  9470.             /* [in] */ WCHAR *pwszRecordName) = 0;
  9471.         
  9472.         virtual HRESULT STDMETHODCALLTYPE GetStreamsForRecord( 
  9473.             /* [in] */ WORD wRecordNumber,
  9474.             /* [size_is][out] */ WORD *pwStreamNumArray,
  9475.             /* [out][in] */ WORD *pcStreams) = 0;
  9476.         
  9477.         virtual HRESULT STDMETHODCALLTYPE AddStreamForRecord( 
  9478.             /* [in] */ WORD wRecordNumber,
  9479.             /* [in] */ WORD wStreamNumber) = 0;
  9480.         
  9481.         virtual HRESULT STDMETHODCALLTYPE RemoveStreamForRecord( 
  9482.             /* [in] */ WORD wRecordNumber,
  9483.             /* [in] */ WORD wStreamNumber) = 0;
  9484.         
  9485.     };
  9486.     
  9487. #else     /* C style interface */
  9488.  
  9489.     typedef struct IWMMutualExclusion2Vtbl
  9490.     {
  9491.         BEGIN_INTERFACE
  9492.         
  9493.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  9494.             IWMMutualExclusion2 * This,
  9495.             /* [in] */ REFIID riid,
  9496.             /* [iid_is][out] */ void **ppvObject);
  9497.         
  9498.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  9499.             IWMMutualExclusion2 * This);
  9500.         
  9501.         ULONG ( STDMETHODCALLTYPE *Release )( 
  9502.             IWMMutualExclusion2 * This);
  9503.         
  9504.         HRESULT ( STDMETHODCALLTYPE *GetStreams )( 
  9505.             IWMMutualExclusion2 * This,
  9506.             /* [size_is][out] */ WORD *pwStreamNumArray,
  9507.             /* [out][in] */ WORD *pcStreams);
  9508.         
  9509.         HRESULT ( STDMETHODCALLTYPE *AddStream )( 
  9510.             IWMMutualExclusion2 * This,
  9511.             /* [in] */ WORD wStreamNum);
  9512.         
  9513.         HRESULT ( STDMETHODCALLTYPE *RemoveStream )( 
  9514.             IWMMutualExclusion2 * This,
  9515.             /* [in] */ WORD wStreamNum);
  9516.         
  9517.         HRESULT ( STDMETHODCALLTYPE *GetType )( 
  9518.             IWMMutualExclusion2 * This,
  9519.             /* [out] */ GUID *pguidType);
  9520.         
  9521.         HRESULT ( STDMETHODCALLTYPE *SetType )( 
  9522.             IWMMutualExclusion2 * This,
  9523.             /* [in] */ REFGUID guidType);
  9524.         
  9525.         HRESULT ( STDMETHODCALLTYPE *GetName )( 
  9526.             IWMMutualExclusion2 * This,
  9527.             /* [size_is][out] */ WCHAR *pwszName,
  9528.             /* [out][in] */ WORD *pcchName);
  9529.         
  9530.         HRESULT ( STDMETHODCALLTYPE *SetName )( 
  9531.             IWMMutualExclusion2 * This,
  9532.             /* [in] */ WCHAR *pwszName);
  9533.         
  9534.         HRESULT ( STDMETHODCALLTYPE *GetRecordCount )( 
  9535.             IWMMutualExclusion2 * This,
  9536.             /* [out] */ WORD *pwRecordCount);
  9537.         
  9538.         HRESULT ( STDMETHODCALLTYPE *AddRecord )( 
  9539.             IWMMutualExclusion2 * This);
  9540.         
  9541.         HRESULT ( STDMETHODCALLTYPE *RemoveRecord )( 
  9542.             IWMMutualExclusion2 * This,
  9543.             /* [in] */ WORD wRecordNumber);
  9544.         
  9545.         HRESULT ( STDMETHODCALLTYPE *GetRecordName )( 
  9546.             IWMMutualExclusion2 * This,
  9547.             /* [in] */ WORD wRecordNumber,
  9548.             /* [size_is][out] */ WCHAR *pwszRecordName,
  9549.             /* [out][in] */ WORD *pcchRecordName);
  9550.         
  9551.         HRESULT ( STDMETHODCALLTYPE *SetRecordName )( 
  9552.             IWMMutualExclusion2 * This,
  9553.             /* [in] */ WORD wRecordNumber,
  9554.             /* [in] */ WCHAR *pwszRecordName);
  9555.         
  9556.         HRESULT ( STDMETHODCALLTYPE *GetStreamsForRecord )( 
  9557.             IWMMutualExclusion2 * This,
  9558.             /* [in] */ WORD wRecordNumber,
  9559.             /* [size_is][out] */ WORD *pwStreamNumArray,
  9560.             /* [out][in] */ WORD *pcStreams);
  9561.         
  9562.         HRESULT ( STDMETHODCALLTYPE *AddStreamForRecord )( 
  9563.             IWMMutualExclusion2 * This,
  9564.             /* [in] */ WORD wRecordNumber,
  9565.             /* [in] */ WORD wStreamNumber);
  9566.         
  9567.         HRESULT ( STDMETHODCALLTYPE *RemoveStreamForRecord )( 
  9568.             IWMMutualExclusion2 * This,
  9569.             /* [in] */ WORD wRecordNumber,
  9570.             /* [in] */ WORD wStreamNumber);
  9571.         
  9572.         END_INTERFACE
  9573.     } IWMMutualExclusion2Vtbl;
  9574.  
  9575.     interface IWMMutualExclusion2
  9576.     {
  9577.         CONST_VTBL struct IWMMutualExclusion2Vtbl *lpVtbl;
  9578.     };
  9579.  
  9580.     
  9581.  
  9582. #ifdef COBJMACROS
  9583.  
  9584.  
  9585. #define IWMMutualExclusion2_QueryInterface(This,riid,ppvObject)    \
  9586.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  9587.  
  9588. #define IWMMutualExclusion2_AddRef(This)    \
  9589.     (This)->lpVtbl -> AddRef(This)
  9590.  
  9591. #define IWMMutualExclusion2_Release(This)    \
  9592.     (This)->lpVtbl -> Release(This)
  9593.  
  9594.  
  9595. #define IWMMutualExclusion2_GetStreams(This,pwStreamNumArray,pcStreams)    \
  9596.     (This)->lpVtbl -> GetStreams(This,pwStreamNumArray,pcStreams)
  9597.  
  9598. #define IWMMutualExclusion2_AddStream(This,wStreamNum)    \
  9599.     (This)->lpVtbl -> AddStream(This,wStreamNum)
  9600.  
  9601. #define IWMMutualExclusion2_RemoveStream(This,wStreamNum)    \
  9602.     (This)->lpVtbl -> RemoveStream(This,wStreamNum)
  9603.  
  9604.  
  9605. #define IWMMutualExclusion2_GetType(This,pguidType)    \
  9606.     (This)->lpVtbl -> GetType(This,pguidType)
  9607.  
  9608. #define IWMMutualExclusion2_SetType(This,guidType)    \
  9609.     (This)->lpVtbl -> SetType(This,guidType)
  9610.  
  9611.  
  9612. #define IWMMutualExclusion2_GetName(This,pwszName,pcchName)    \
  9613.     (This)->lpVtbl -> GetName(This,pwszName,pcchName)
  9614.  
  9615. #define IWMMutualExclusion2_SetName(This,pwszName)    \
  9616.     (This)->lpVtbl -> SetName(This,pwszName)
  9617.  
  9618. #define IWMMutualExclusion2_GetRecordCount(This,pwRecordCount)    \
  9619.     (This)->lpVtbl -> GetRecordCount(This,pwRecordCount)
  9620.  
  9621. #define IWMMutualExclusion2_AddRecord(This)    \
  9622.     (This)->lpVtbl -> AddRecord(This)
  9623.  
  9624. #define IWMMutualExclusion2_RemoveRecord(This,wRecordNumber)    \
  9625.     (This)->lpVtbl -> RemoveRecord(This,wRecordNumber)
  9626.  
  9627. #define IWMMutualExclusion2_GetRecordName(This,wRecordNumber,pwszRecordName,pcchRecordName)    \
  9628.     (This)->lpVtbl -> GetRecordName(This,wRecordNumber,pwszRecordName,pcchRecordName)
  9629.  
  9630. #define IWMMutualExclusion2_SetRecordName(This,wRecordNumber,pwszRecordName)    \
  9631.     (This)->lpVtbl -> SetRecordName(This,wRecordNumber,pwszRecordName)
  9632.  
  9633. #define IWMMutualExclusion2_GetStreamsForRecord(This,wRecordNumber,pwStreamNumArray,pcStreams)    \
  9634.     (This)->lpVtbl -> GetStreamsForRecord(This,wRecordNumber,pwStreamNumArray,pcStreams)
  9635.  
  9636. #define IWMMutualExclusion2_AddStreamForRecord(This,wRecordNumber,wStreamNumber)    \
  9637.     (This)->lpVtbl -> AddStreamForRecord(This,wRecordNumber,wStreamNumber)
  9638.  
  9639. #define IWMMutualExclusion2_RemoveStreamForRecord(This,wRecordNumber,wStreamNumber)    \
  9640.     (This)->lpVtbl -> RemoveStreamForRecord(This,wRecordNumber,wStreamNumber)
  9641.  
  9642. #endif /* COBJMACROS */
  9643.  
  9644.  
  9645. #endif     /* C style interface */
  9646.  
  9647.  
  9648.  
  9649. HRESULT STDMETHODCALLTYPE IWMMutualExclusion2_GetName_Proxy( 
  9650.     IWMMutualExclusion2 * This,
  9651.     /* [size_is][out] */ WCHAR *pwszName,
  9652.     /* [out][in] */ WORD *pcchName);
  9653.  
  9654.  
  9655. void __RPC_STUB IWMMutualExclusion2_GetName_Stub(
  9656.     IRpcStubBuffer *This,
  9657.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9658.     PRPC_MESSAGE _pRpcMessage,
  9659.     DWORD *_pdwStubPhase);
  9660.  
  9661.  
  9662. HRESULT STDMETHODCALLTYPE IWMMutualExclusion2_SetName_Proxy( 
  9663.     IWMMutualExclusion2 * This,
  9664.     /* [in] */ WCHAR *pwszName);
  9665.  
  9666.  
  9667. void __RPC_STUB IWMMutualExclusion2_SetName_Stub(
  9668.     IRpcStubBuffer *This,
  9669.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9670.     PRPC_MESSAGE _pRpcMessage,
  9671.     DWORD *_pdwStubPhase);
  9672.  
  9673.  
  9674. HRESULT STDMETHODCALLTYPE IWMMutualExclusion2_GetRecordCount_Proxy( 
  9675.     IWMMutualExclusion2 * This,
  9676.     /* [out] */ WORD *pwRecordCount);
  9677.  
  9678.  
  9679. void __RPC_STUB IWMMutualExclusion2_GetRecordCount_Stub(
  9680.     IRpcStubBuffer *This,
  9681.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9682.     PRPC_MESSAGE _pRpcMessage,
  9683.     DWORD *_pdwStubPhase);
  9684.  
  9685.  
  9686. HRESULT STDMETHODCALLTYPE IWMMutualExclusion2_AddRecord_Proxy( 
  9687.     IWMMutualExclusion2 * This);
  9688.  
  9689.  
  9690. void __RPC_STUB IWMMutualExclusion2_AddRecord_Stub(
  9691.     IRpcStubBuffer *This,
  9692.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9693.     PRPC_MESSAGE _pRpcMessage,
  9694.     DWORD *_pdwStubPhase);
  9695.  
  9696.  
  9697. HRESULT STDMETHODCALLTYPE IWMMutualExclusion2_RemoveRecord_Proxy( 
  9698.     IWMMutualExclusion2 * This,
  9699.     /* [in] */ WORD wRecordNumber);
  9700.  
  9701.  
  9702. void __RPC_STUB IWMMutualExclusion2_RemoveRecord_Stub(
  9703.     IRpcStubBuffer *This,
  9704.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9705.     PRPC_MESSAGE _pRpcMessage,
  9706.     DWORD *_pdwStubPhase);
  9707.  
  9708.  
  9709. HRESULT STDMETHODCALLTYPE IWMMutualExclusion2_GetRecordName_Proxy( 
  9710.     IWMMutualExclusion2 * This,
  9711.     /* [in] */ WORD wRecordNumber,
  9712.     /* [size_is][out] */ WCHAR *pwszRecordName,
  9713.     /* [out][in] */ WORD *pcchRecordName);
  9714.  
  9715.  
  9716. void __RPC_STUB IWMMutualExclusion2_GetRecordName_Stub(
  9717.     IRpcStubBuffer *This,
  9718.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9719.     PRPC_MESSAGE _pRpcMessage,
  9720.     DWORD *_pdwStubPhase);
  9721.  
  9722.  
  9723. HRESULT STDMETHODCALLTYPE IWMMutualExclusion2_SetRecordName_Proxy( 
  9724.     IWMMutualExclusion2 * This,
  9725.     /* [in] */ WORD wRecordNumber,
  9726.     /* [in] */ WCHAR *pwszRecordName);
  9727.  
  9728.  
  9729. void __RPC_STUB IWMMutualExclusion2_SetRecordName_Stub(
  9730.     IRpcStubBuffer *This,
  9731.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9732.     PRPC_MESSAGE _pRpcMessage,
  9733.     DWORD *_pdwStubPhase);
  9734.  
  9735.  
  9736. HRESULT STDMETHODCALLTYPE IWMMutualExclusion2_GetStreamsForRecord_Proxy( 
  9737.     IWMMutualExclusion2 * This,
  9738.     /* [in] */ WORD wRecordNumber,
  9739.     /* [size_is][out] */ WORD *pwStreamNumArray,
  9740.     /* [out][in] */ WORD *pcStreams);
  9741.  
  9742.  
  9743. void __RPC_STUB IWMMutualExclusion2_GetStreamsForRecord_Stub(
  9744.     IRpcStubBuffer *This,
  9745.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9746.     PRPC_MESSAGE _pRpcMessage,
  9747.     DWORD *_pdwStubPhase);
  9748.  
  9749.  
  9750. HRESULT STDMETHODCALLTYPE IWMMutualExclusion2_AddStreamForRecord_Proxy( 
  9751.     IWMMutualExclusion2 * This,
  9752.     /* [in] */ WORD wRecordNumber,
  9753.     /* [in] */ WORD wStreamNumber);
  9754.  
  9755.  
  9756. void __RPC_STUB IWMMutualExclusion2_AddStreamForRecord_Stub(
  9757.     IRpcStubBuffer *This,
  9758.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9759.     PRPC_MESSAGE _pRpcMessage,
  9760.     DWORD *_pdwStubPhase);
  9761.  
  9762.  
  9763. HRESULT STDMETHODCALLTYPE IWMMutualExclusion2_RemoveStreamForRecord_Proxy( 
  9764.     IWMMutualExclusion2 * This,
  9765.     /* [in] */ WORD wRecordNumber,
  9766.     /* [in] */ WORD wStreamNumber);
  9767.  
  9768.  
  9769. void __RPC_STUB IWMMutualExclusion2_RemoveStreamForRecord_Stub(
  9770.     IRpcStubBuffer *This,
  9771.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9772.     PRPC_MESSAGE _pRpcMessage,
  9773.     DWORD *_pdwStubPhase);
  9774.  
  9775.  
  9776.  
  9777. #endif     /* __IWMMutualExclusion2_INTERFACE_DEFINED__ */
  9778.  
  9779.  
  9780. #ifndef __IWMBandwidthSharing_INTERFACE_DEFINED__
  9781. #define __IWMBandwidthSharing_INTERFACE_DEFINED__
  9782.  
  9783. /* interface IWMBandwidthSharing */
  9784. /* [local][unique][helpstring][uuid][object] */ 
  9785.  
  9786.  
  9787. EXTERN_C const IID IID_IWMBandwidthSharing;
  9788.  
  9789. #if defined(__cplusplus) && !defined(CINTERFACE)
  9790.     
  9791.     MIDL_INTERFACE("AD694AF1-F8D9-42F8-BC47-70311B0C4F9E")
  9792.     IWMBandwidthSharing : public IWMStreamList
  9793.     {
  9794.     public:
  9795.         virtual HRESULT STDMETHODCALLTYPE GetType( 
  9796.             /* [out] */ GUID *pguidType) = 0;
  9797.         
  9798.         virtual HRESULT STDMETHODCALLTYPE SetType( 
  9799.             /* [in] */ REFGUID guidType) = 0;
  9800.         
  9801.         virtual HRESULT STDMETHODCALLTYPE GetBandwidth( 
  9802.             /* [out] */ DWORD *pdwBitrate,
  9803.             /* [out] */ DWORD *pmsBufferWindow) = 0;
  9804.         
  9805.         virtual HRESULT STDMETHODCALLTYPE SetBandwidth( 
  9806.             /* [in] */ DWORD dwBitrate,
  9807.             /* [in] */ DWORD msBufferWindow) = 0;
  9808.         
  9809.     };
  9810.     
  9811. #else     /* C style interface */
  9812.  
  9813.     typedef struct IWMBandwidthSharingVtbl
  9814.     {
  9815.         BEGIN_INTERFACE
  9816.         
  9817.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  9818.             IWMBandwidthSharing * This,
  9819.             /* [in] */ REFIID riid,
  9820.             /* [iid_is][out] */ void **ppvObject);
  9821.         
  9822.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  9823.             IWMBandwidthSharing * This);
  9824.         
  9825.         ULONG ( STDMETHODCALLTYPE *Release )( 
  9826.             IWMBandwidthSharing * This);
  9827.         
  9828.         HRESULT ( STDMETHODCALLTYPE *GetStreams )( 
  9829.             IWMBandwidthSharing * This,
  9830.             /* [size_is][out] */ WORD *pwStreamNumArray,
  9831.             /* [out][in] */ WORD *pcStreams);
  9832.         
  9833.         HRESULT ( STDMETHODCALLTYPE *AddStream )( 
  9834.             IWMBandwidthSharing * This,
  9835.             /* [in] */ WORD wStreamNum);
  9836.         
  9837.         HRESULT ( STDMETHODCALLTYPE *RemoveStream )( 
  9838.             IWMBandwidthSharing * This,
  9839.             /* [in] */ WORD wStreamNum);
  9840.         
  9841.         HRESULT ( STDMETHODCALLTYPE *GetType )( 
  9842.             IWMBandwidthSharing * This,
  9843.             /* [out] */ GUID *pguidType);
  9844.         
  9845.         HRESULT ( STDMETHODCALLTYPE *SetType )( 
  9846.             IWMBandwidthSharing * This,
  9847.             /* [in] */ REFGUID guidType);
  9848.         
  9849.         HRESULT ( STDMETHODCALLTYPE *GetBandwidth )( 
  9850.             IWMBandwidthSharing * This,
  9851.             /* [out] */ DWORD *pdwBitrate,
  9852.             /* [out] */ DWORD *pmsBufferWindow);
  9853.         
  9854.         HRESULT ( STDMETHODCALLTYPE *SetBandwidth )( 
  9855.             IWMBandwidthSharing * This,
  9856.             /* [in] */ DWORD dwBitrate,
  9857.             /* [in] */ DWORD msBufferWindow);
  9858.         
  9859.         END_INTERFACE
  9860.     } IWMBandwidthSharingVtbl;
  9861.  
  9862.     interface IWMBandwidthSharing
  9863.     {
  9864.         CONST_VTBL struct IWMBandwidthSharingVtbl *lpVtbl;
  9865.     };
  9866.  
  9867.     
  9868.  
  9869. #ifdef COBJMACROS
  9870.  
  9871.  
  9872. #define IWMBandwidthSharing_QueryInterface(This,riid,ppvObject)    \
  9873.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  9874.  
  9875. #define IWMBandwidthSharing_AddRef(This)    \
  9876.     (This)->lpVtbl -> AddRef(This)
  9877.  
  9878. #define IWMBandwidthSharing_Release(This)    \
  9879.     (This)->lpVtbl -> Release(This)
  9880.  
  9881.  
  9882. #define IWMBandwidthSharing_GetStreams(This,pwStreamNumArray,pcStreams)    \
  9883.     (This)->lpVtbl -> GetStreams(This,pwStreamNumArray,pcStreams)
  9884.  
  9885. #define IWMBandwidthSharing_AddStream(This,wStreamNum)    \
  9886.     (This)->lpVtbl -> AddStream(This,wStreamNum)
  9887.  
  9888. #define IWMBandwidthSharing_RemoveStream(This,wStreamNum)    \
  9889.     (This)->lpVtbl -> RemoveStream(This,wStreamNum)
  9890.  
  9891.  
  9892. #define IWMBandwidthSharing_GetType(This,pguidType)    \
  9893.     (This)->lpVtbl -> GetType(This,pguidType)
  9894.  
  9895. #define IWMBandwidthSharing_SetType(This,guidType)    \
  9896.     (This)->lpVtbl -> SetType(This,guidType)
  9897.  
  9898. #define IWMBandwidthSharing_GetBandwidth(This,pdwBitrate,pmsBufferWindow)    \
  9899.     (This)->lpVtbl -> GetBandwidth(This,pdwBitrate,pmsBufferWindow)
  9900.  
  9901. #define IWMBandwidthSharing_SetBandwidth(This,dwBitrate,msBufferWindow)    \
  9902.     (This)->lpVtbl -> SetBandwidth(This,dwBitrate,msBufferWindow)
  9903.  
  9904. #endif /* COBJMACROS */
  9905.  
  9906.  
  9907. #endif     /* C style interface */
  9908.  
  9909.  
  9910.  
  9911. HRESULT STDMETHODCALLTYPE IWMBandwidthSharing_GetType_Proxy( 
  9912.     IWMBandwidthSharing * This,
  9913.     /* [out] */ GUID *pguidType);
  9914.  
  9915.  
  9916. void __RPC_STUB IWMBandwidthSharing_GetType_Stub(
  9917.     IRpcStubBuffer *This,
  9918.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9919.     PRPC_MESSAGE _pRpcMessage,
  9920.     DWORD *_pdwStubPhase);
  9921.  
  9922.  
  9923. HRESULT STDMETHODCALLTYPE IWMBandwidthSharing_SetType_Proxy( 
  9924.     IWMBandwidthSharing * This,
  9925.     /* [in] */ REFGUID guidType);
  9926.  
  9927.  
  9928. void __RPC_STUB IWMBandwidthSharing_SetType_Stub(
  9929.     IRpcStubBuffer *This,
  9930.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9931.     PRPC_MESSAGE _pRpcMessage,
  9932.     DWORD *_pdwStubPhase);
  9933.  
  9934.  
  9935. HRESULT STDMETHODCALLTYPE IWMBandwidthSharing_GetBandwidth_Proxy( 
  9936.     IWMBandwidthSharing * This,
  9937.     /* [out] */ DWORD *pdwBitrate,
  9938.     /* [out] */ DWORD *pmsBufferWindow);
  9939.  
  9940.  
  9941. void __RPC_STUB IWMBandwidthSharing_GetBandwidth_Stub(
  9942.     IRpcStubBuffer *This,
  9943.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9944.     PRPC_MESSAGE _pRpcMessage,
  9945.     DWORD *_pdwStubPhase);
  9946.  
  9947.  
  9948. HRESULT STDMETHODCALLTYPE IWMBandwidthSharing_SetBandwidth_Proxy( 
  9949.     IWMBandwidthSharing * This,
  9950.     /* [in] */ DWORD dwBitrate,
  9951.     /* [in] */ DWORD msBufferWindow);
  9952.  
  9953.  
  9954. void __RPC_STUB IWMBandwidthSharing_SetBandwidth_Stub(
  9955.     IRpcStubBuffer *This,
  9956.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9957.     PRPC_MESSAGE _pRpcMessage,
  9958.     DWORD *_pdwStubPhase);
  9959.  
  9960.  
  9961.  
  9962. #endif     /* __IWMBandwidthSharing_INTERFACE_DEFINED__ */
  9963.  
  9964.  
  9965. #ifndef __IWMStreamPrioritization_INTERFACE_DEFINED__
  9966. #define __IWMStreamPrioritization_INTERFACE_DEFINED__
  9967.  
  9968. /* interface IWMStreamPrioritization */
  9969. /* [local][unique][helpstring][uuid][object] */ 
  9970.  
  9971.  
  9972. EXTERN_C const IID IID_IWMStreamPrioritization;
  9973.  
  9974. #if defined(__cplusplus) && !defined(CINTERFACE)
  9975.     
  9976.     MIDL_INTERFACE("8C1C6090-F9A8-4748-8EC3-DD1108BA1E77")
  9977.     IWMStreamPrioritization : public IUnknown
  9978.     {
  9979.     public:
  9980.         virtual HRESULT STDMETHODCALLTYPE GetPriorityRecords( 
  9981.             /* [size_is][out] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  9982.             /* [out][in] */ WORD *pcRecords) = 0;
  9983.         
  9984.         virtual HRESULT STDMETHODCALLTYPE SetPriorityRecords( 
  9985.             /* [in] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  9986.             /* [in] */ WORD cRecords) = 0;
  9987.         
  9988.     };
  9989.     
  9990. #else     /* C style interface */
  9991.  
  9992.     typedef struct IWMStreamPrioritizationVtbl
  9993.     {
  9994.         BEGIN_INTERFACE
  9995.         
  9996.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  9997.             IWMStreamPrioritization * This,
  9998.             /* [in] */ REFIID riid,
  9999.             /* [iid_is][out] */ void **ppvObject);
  10000.         
  10001.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  10002.             IWMStreamPrioritization * This);
  10003.         
  10004.         ULONG ( STDMETHODCALLTYPE *Release )( 
  10005.             IWMStreamPrioritization * This);
  10006.         
  10007.         HRESULT ( STDMETHODCALLTYPE *GetPriorityRecords )( 
  10008.             IWMStreamPrioritization * This,
  10009.             /* [size_is][out] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  10010.             /* [out][in] */ WORD *pcRecords);
  10011.         
  10012.         HRESULT ( STDMETHODCALLTYPE *SetPriorityRecords )( 
  10013.             IWMStreamPrioritization * This,
  10014.             /* [in] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  10015.             /* [in] */ WORD cRecords);
  10016.         
  10017.         END_INTERFACE
  10018.     } IWMStreamPrioritizationVtbl;
  10019.  
  10020.     interface IWMStreamPrioritization
  10021.     {
  10022.         CONST_VTBL struct IWMStreamPrioritizationVtbl *lpVtbl;
  10023.     };
  10024.  
  10025.     
  10026.  
  10027. #ifdef COBJMACROS
  10028.  
  10029.  
  10030. #define IWMStreamPrioritization_QueryInterface(This,riid,ppvObject)    \
  10031.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  10032.  
  10033. #define IWMStreamPrioritization_AddRef(This)    \
  10034.     (This)->lpVtbl -> AddRef(This)
  10035.  
  10036. #define IWMStreamPrioritization_Release(This)    \
  10037.     (This)->lpVtbl -> Release(This)
  10038.  
  10039.  
  10040. #define IWMStreamPrioritization_GetPriorityRecords(This,pRecordArray,pcRecords)    \
  10041.     (This)->lpVtbl -> GetPriorityRecords(This,pRecordArray,pcRecords)
  10042.  
  10043. #define IWMStreamPrioritization_SetPriorityRecords(This,pRecordArray,cRecords)    \
  10044.     (This)->lpVtbl -> SetPriorityRecords(This,pRecordArray,cRecords)
  10045.  
  10046. #endif /* COBJMACROS */
  10047.  
  10048.  
  10049. #endif     /* C style interface */
  10050.  
  10051.  
  10052.  
  10053. HRESULT STDMETHODCALLTYPE IWMStreamPrioritization_GetPriorityRecords_Proxy( 
  10054.     IWMStreamPrioritization * This,
  10055.     /* [size_is][out] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  10056.     /* [out][in] */ WORD *pcRecords);
  10057.  
  10058.  
  10059. void __RPC_STUB IWMStreamPrioritization_GetPriorityRecords_Stub(
  10060.     IRpcStubBuffer *This,
  10061.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10062.     PRPC_MESSAGE _pRpcMessage,
  10063.     DWORD *_pdwStubPhase);
  10064.  
  10065.  
  10066. HRESULT STDMETHODCALLTYPE IWMStreamPrioritization_SetPriorityRecords_Proxy( 
  10067.     IWMStreamPrioritization * This,
  10068.     /* [in] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  10069.     /* [in] */ WORD cRecords);
  10070.  
  10071.  
  10072. void __RPC_STUB IWMStreamPrioritization_SetPriorityRecords_Stub(
  10073.     IRpcStubBuffer *This,
  10074.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10075.     PRPC_MESSAGE _pRpcMessage,
  10076.     DWORD *_pdwStubPhase);
  10077.  
  10078.  
  10079.  
  10080. #endif     /* __IWMStreamPrioritization_INTERFACE_DEFINED__ */
  10081.  
  10082.  
  10083. #ifndef __IWMWriterAdvanced_INTERFACE_DEFINED__
  10084. #define __IWMWriterAdvanced_INTERFACE_DEFINED__
  10085.  
  10086. /* interface IWMWriterAdvanced */
  10087. /* [local][unique][helpstring][uuid][object] */ 
  10088.  
  10089.  
  10090. EXTERN_C const IID IID_IWMWriterAdvanced;
  10091.  
  10092. #if defined(__cplusplus) && !defined(CINTERFACE)
  10093.     
  10094.     MIDL_INTERFACE("96406BE3-2B2B-11d3-B36B-00C04F6108FF")
  10095.     IWMWriterAdvanced : public IUnknown
  10096.     {
  10097.     public:
  10098.         virtual HRESULT STDMETHODCALLTYPE GetSinkCount( 
  10099.             /* [out] */ DWORD *pcSinks) = 0;
  10100.         
  10101.         virtual HRESULT STDMETHODCALLTYPE GetSink( 
  10102.             /* [in] */ DWORD dwSinkNum,
  10103.             /* [out] */ IWMWriterSink **ppSink) = 0;
  10104.         
  10105.         virtual HRESULT STDMETHODCALLTYPE AddSink( 
  10106.             /* [in] */ IWMWriterSink *pSink) = 0;
  10107.         
  10108.         virtual HRESULT STDMETHODCALLTYPE RemoveSink( 
  10109.             /* [in] */ IWMWriterSink *pSink) = 0;
  10110.         
  10111.         virtual HRESULT STDMETHODCALLTYPE WriteStreamSample( 
  10112.             /* [in] */ WORD wStreamNum,
  10113.             /* [in] */ QWORD cnsSampleTime,
  10114.             /* [in] */ DWORD msSampleSendTime,
  10115.             /* [in] */ QWORD cnsSampleDuration,
  10116.             /* [in] */ DWORD dwFlags,
  10117.             /* [in] */ INSSBuffer *pSample) = 0;
  10118.         
  10119.         virtual HRESULT STDMETHODCALLTYPE SetLiveSource( 
  10120.             BOOL fIsLiveSource) = 0;
  10121.         
  10122.         virtual HRESULT STDMETHODCALLTYPE IsRealTime( 
  10123.             /* [out] */ BOOL *pfRealTime) = 0;
  10124.         
  10125.         virtual HRESULT STDMETHODCALLTYPE GetWriterTime( 
  10126.             /* [out] */ QWORD *pcnsCurrentTime) = 0;
  10127.         
  10128.         virtual HRESULT STDMETHODCALLTYPE GetStatistics( 
  10129.             /* [in] */ WORD wStreamNum,
  10130.             /* [out] */ WM_WRITER_STATISTICS *pStats) = 0;
  10131.         
  10132.         virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance( 
  10133.             /* [in] */ DWORD msWindow) = 0;
  10134.         
  10135.         virtual HRESULT STDMETHODCALLTYPE GetSyncTolerance( 
  10136.             /* [out] */ DWORD *pmsWindow) = 0;
  10137.         
  10138.     };
  10139.     
  10140. #else     /* C style interface */
  10141.  
  10142.     typedef struct IWMWriterAdvancedVtbl
  10143.     {
  10144.         BEGIN_INTERFACE
  10145.         
  10146.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  10147.             IWMWriterAdvanced * This,
  10148.             /* [in] */ REFIID riid,
  10149.             /* [iid_is][out] */ void **ppvObject);
  10150.         
  10151.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  10152.             IWMWriterAdvanced * This);
  10153.         
  10154.         ULONG ( STDMETHODCALLTYPE *Release )( 
  10155.             IWMWriterAdvanced * This);
  10156.         
  10157.         HRESULT ( STDMETHODCALLTYPE *GetSinkCount )( 
  10158.             IWMWriterAdvanced * This,
  10159.             /* [out] */ DWORD *pcSinks);
  10160.         
  10161.         HRESULT ( STDMETHODCALLTYPE *GetSink )( 
  10162.             IWMWriterAdvanced * This,
  10163.             /* [in] */ DWORD dwSinkNum,
  10164.             /* [out] */ IWMWriterSink **ppSink);
  10165.         
  10166.         HRESULT ( STDMETHODCALLTYPE *AddSink )( 
  10167.             IWMWriterAdvanced * This,
  10168.             /* [in] */ IWMWriterSink *pSink);
  10169.         
  10170.         HRESULT ( STDMETHODCALLTYPE *RemoveSink )( 
  10171.             IWMWriterAdvanced * This,
  10172.             /* [in] */ IWMWriterSink *pSink);
  10173.         
  10174.         HRESULT ( STDMETHODCALLTYPE *WriteStreamSample )( 
  10175.             IWMWriterAdvanced * This,
  10176.             /* [in] */ WORD wStreamNum,
  10177.             /* [in] */ QWORD cnsSampleTime,
  10178.             /* [in] */ DWORD msSampleSendTime,
  10179.             /* [in] */ QWORD cnsSampleDuration,
  10180.             /* [in] */ DWORD dwFlags,
  10181.             /* [in] */ INSSBuffer *pSample);
  10182.         
  10183.         HRESULT ( STDMETHODCALLTYPE *SetLiveSource )( 
  10184.             IWMWriterAdvanced * This,
  10185.             BOOL fIsLiveSource);
  10186.         
  10187.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  10188.             IWMWriterAdvanced * This,
  10189.             /* [out] */ BOOL *pfRealTime);
  10190.         
  10191.         HRESULT ( STDMETHODCALLTYPE *GetWriterTime )( 
  10192.             IWMWriterAdvanced * This,
  10193.             /* [out] */ QWORD *pcnsCurrentTime);
  10194.         
  10195.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  10196.             IWMWriterAdvanced * This,
  10197.             /* [in] */ WORD wStreamNum,
  10198.             /* [out] */ WM_WRITER_STATISTICS *pStats);
  10199.         
  10200.         HRESULT ( STDMETHODCALLTYPE *SetSyncTolerance )( 
  10201.             IWMWriterAdvanced * This,
  10202.             /* [in] */ DWORD msWindow);
  10203.         
  10204.         HRESULT ( STDMETHODCALLTYPE *GetSyncTolerance )( 
  10205.             IWMWriterAdvanced * This,
  10206.             /* [out] */ DWORD *pmsWindow);
  10207.         
  10208.         END_INTERFACE
  10209.     } IWMWriterAdvancedVtbl;
  10210.  
  10211.     interface IWMWriterAdvanced
  10212.     {
  10213.         CONST_VTBL struct IWMWriterAdvancedVtbl *lpVtbl;
  10214.     };
  10215.  
  10216.     
  10217.  
  10218. #ifdef COBJMACROS
  10219.  
  10220.  
  10221. #define IWMWriterAdvanced_QueryInterface(This,riid,ppvObject)    \
  10222.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  10223.  
  10224. #define IWMWriterAdvanced_AddRef(This)    \
  10225.     (This)->lpVtbl -> AddRef(This)
  10226.  
  10227. #define IWMWriterAdvanced_Release(This)    \
  10228.     (This)->lpVtbl -> Release(This)
  10229.  
  10230.  
  10231. #define IWMWriterAdvanced_GetSinkCount(This,pcSinks)    \
  10232.     (This)->lpVtbl -> GetSinkCount(This,pcSinks)
  10233.  
  10234. #define IWMWriterAdvanced_GetSink(This,dwSinkNum,ppSink)    \
  10235.     (This)->lpVtbl -> GetSink(This,dwSinkNum,ppSink)
  10236.  
  10237. #define IWMWriterAdvanced_AddSink(This,pSink)    \
  10238.     (This)->lpVtbl -> AddSink(This,pSink)
  10239.  
  10240. #define IWMWriterAdvanced_RemoveSink(This,pSink)    \
  10241.     (This)->lpVtbl -> RemoveSink(This,pSink)
  10242.  
  10243. #define IWMWriterAdvanced_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)    \
  10244.     (This)->lpVtbl -> WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
  10245.  
  10246. #define IWMWriterAdvanced_SetLiveSource(This,fIsLiveSource)    \
  10247.     (This)->lpVtbl -> SetLiveSource(This,fIsLiveSource)
  10248.  
  10249. #define IWMWriterAdvanced_IsRealTime(This,pfRealTime)    \
  10250.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  10251.  
  10252. #define IWMWriterAdvanced_GetWriterTime(This,pcnsCurrentTime)    \
  10253.     (This)->lpVtbl -> GetWriterTime(This,pcnsCurrentTime)
  10254.  
  10255. #define IWMWriterAdvanced_GetStatistics(This,wStreamNum,pStats)    \
  10256.     (This)->lpVtbl -> GetStatistics(This,wStreamNum,pStats)
  10257.  
  10258. #define IWMWriterAdvanced_SetSyncTolerance(This,msWindow)    \
  10259.     (This)->lpVtbl -> SetSyncTolerance(This,msWindow)
  10260.  
  10261. #define IWMWriterAdvanced_GetSyncTolerance(This,pmsWindow)    \
  10262.     (This)->lpVtbl -> GetSyncTolerance(This,pmsWindow)
  10263.  
  10264. #endif /* COBJMACROS */
  10265.  
  10266.  
  10267. #endif     /* C style interface */
  10268.  
  10269.  
  10270.  
  10271. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetSinkCount_Proxy( 
  10272.     IWMWriterAdvanced * This,
  10273.     /* [out] */ DWORD *pcSinks);
  10274.  
  10275.  
  10276. void __RPC_STUB IWMWriterAdvanced_GetSinkCount_Stub(
  10277.     IRpcStubBuffer *This,
  10278.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10279.     PRPC_MESSAGE _pRpcMessage,
  10280.     DWORD *_pdwStubPhase);
  10281.  
  10282.  
  10283. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetSink_Proxy( 
  10284.     IWMWriterAdvanced * This,
  10285.     /* [in] */ DWORD dwSinkNum,
  10286.     /* [out] */ IWMWriterSink **ppSink);
  10287.  
  10288.  
  10289. void __RPC_STUB IWMWriterAdvanced_GetSink_Stub(
  10290.     IRpcStubBuffer *This,
  10291.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10292.     PRPC_MESSAGE _pRpcMessage,
  10293.     DWORD *_pdwStubPhase);
  10294.  
  10295.  
  10296. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_AddSink_Proxy( 
  10297.     IWMWriterAdvanced * This,
  10298.     /* [in] */ IWMWriterSink *pSink);
  10299.  
  10300.  
  10301. void __RPC_STUB IWMWriterAdvanced_AddSink_Stub(
  10302.     IRpcStubBuffer *This,
  10303.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10304.     PRPC_MESSAGE _pRpcMessage,
  10305.     DWORD *_pdwStubPhase);
  10306.  
  10307.  
  10308. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_RemoveSink_Proxy( 
  10309.     IWMWriterAdvanced * This,
  10310.     /* [in] */ IWMWriterSink *pSink);
  10311.  
  10312.  
  10313. void __RPC_STUB IWMWriterAdvanced_RemoveSink_Stub(
  10314.     IRpcStubBuffer *This,
  10315.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10316.     PRPC_MESSAGE _pRpcMessage,
  10317.     DWORD *_pdwStubPhase);
  10318.  
  10319.  
  10320. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_WriteStreamSample_Proxy( 
  10321.     IWMWriterAdvanced * This,
  10322.     /* [in] */ WORD wStreamNum,
  10323.     /* [in] */ QWORD cnsSampleTime,
  10324.     /* [in] */ DWORD msSampleSendTime,
  10325.     /* [in] */ QWORD cnsSampleDuration,
  10326.     /* [in] */ DWORD dwFlags,
  10327.     /* [in] */ INSSBuffer *pSample);
  10328.  
  10329.  
  10330. void __RPC_STUB IWMWriterAdvanced_WriteStreamSample_Stub(
  10331.     IRpcStubBuffer *This,
  10332.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10333.     PRPC_MESSAGE _pRpcMessage,
  10334.     DWORD *_pdwStubPhase);
  10335.  
  10336.  
  10337. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_SetLiveSource_Proxy( 
  10338.     IWMWriterAdvanced * This,
  10339.     BOOL fIsLiveSource);
  10340.  
  10341.  
  10342. void __RPC_STUB IWMWriterAdvanced_SetLiveSource_Stub(
  10343.     IRpcStubBuffer *This,
  10344.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10345.     PRPC_MESSAGE _pRpcMessage,
  10346.     DWORD *_pdwStubPhase);
  10347.  
  10348.  
  10349. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_IsRealTime_Proxy( 
  10350.     IWMWriterAdvanced * This,
  10351.     /* [out] */ BOOL *pfRealTime);
  10352.  
  10353.  
  10354. void __RPC_STUB IWMWriterAdvanced_IsRealTime_Stub(
  10355.     IRpcStubBuffer *This,
  10356.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10357.     PRPC_MESSAGE _pRpcMessage,
  10358.     DWORD *_pdwStubPhase);
  10359.  
  10360.  
  10361. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetWriterTime_Proxy( 
  10362.     IWMWriterAdvanced * This,
  10363.     /* [out] */ QWORD *pcnsCurrentTime);
  10364.  
  10365.  
  10366. void __RPC_STUB IWMWriterAdvanced_GetWriterTime_Stub(
  10367.     IRpcStubBuffer *This,
  10368.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10369.     PRPC_MESSAGE _pRpcMessage,
  10370.     DWORD *_pdwStubPhase);
  10371.  
  10372.  
  10373. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetStatistics_Proxy( 
  10374.     IWMWriterAdvanced * This,
  10375.     /* [in] */ WORD wStreamNum,
  10376.     /* [out] */ WM_WRITER_STATISTICS *pStats);
  10377.  
  10378.  
  10379. void __RPC_STUB IWMWriterAdvanced_GetStatistics_Stub(
  10380.     IRpcStubBuffer *This,
  10381.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10382.     PRPC_MESSAGE _pRpcMessage,
  10383.     DWORD *_pdwStubPhase);
  10384.  
  10385.  
  10386. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_SetSyncTolerance_Proxy( 
  10387.     IWMWriterAdvanced * This,
  10388.     /* [in] */ DWORD msWindow);
  10389.  
  10390.  
  10391. void __RPC_STUB IWMWriterAdvanced_SetSyncTolerance_Stub(
  10392.     IRpcStubBuffer *This,
  10393.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10394.     PRPC_MESSAGE _pRpcMessage,
  10395.     DWORD *_pdwStubPhase);
  10396.  
  10397.  
  10398. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetSyncTolerance_Proxy( 
  10399.     IWMWriterAdvanced * This,
  10400.     /* [out] */ DWORD *pmsWindow);
  10401.  
  10402.  
  10403. void __RPC_STUB IWMWriterAdvanced_GetSyncTolerance_Stub(
  10404.     IRpcStubBuffer *This,
  10405.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10406.     PRPC_MESSAGE _pRpcMessage,
  10407.     DWORD *_pdwStubPhase);
  10408.  
  10409.  
  10410.  
  10411. #endif     /* __IWMWriterAdvanced_INTERFACE_DEFINED__ */
  10412.  
  10413.  
  10414. #ifndef __IWMWriterAdvanced2_INTERFACE_DEFINED__
  10415. #define __IWMWriterAdvanced2_INTERFACE_DEFINED__
  10416.  
  10417. /* interface IWMWriterAdvanced2 */
  10418. /* [local][unique][helpstring][uuid][object] */ 
  10419.  
  10420.  
  10421. EXTERN_C const IID IID_IWMWriterAdvanced2;
  10422.  
  10423. #if defined(__cplusplus) && !defined(CINTERFACE)
  10424.     
  10425.     MIDL_INTERFACE("962dc1ec-c046-4db8-9cc7-26ceae500817")
  10426.     IWMWriterAdvanced2 : public IWMWriterAdvanced
  10427.     {
  10428.     public:
  10429.         virtual HRESULT STDMETHODCALLTYPE GetInputSetting( 
  10430.             /* [in] */ DWORD dwInputNum,
  10431.             /* [in] */ LPCWSTR pszName,
  10432.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  10433.             /* [size_is][out] */ BYTE *pValue,
  10434.             /* [out][in] */ WORD *pcbLength) = 0;
  10435.         
  10436.         virtual HRESULT STDMETHODCALLTYPE SetInputSetting( 
  10437.             /* [in] */ DWORD dwInputNum,
  10438.             /* [in] */ LPCWSTR pszName,
  10439.             /* [in] */ WMT_ATTR_DATATYPE Type,
  10440.             /* [size_is][in] */ const BYTE *pValue,
  10441.             /* [in] */ WORD cbLength) = 0;
  10442.         
  10443.     };
  10444.     
  10445. #else     /* C style interface */
  10446.  
  10447.     typedef struct IWMWriterAdvanced2Vtbl
  10448.     {
  10449.         BEGIN_INTERFACE
  10450.         
  10451.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  10452.             IWMWriterAdvanced2 * This,
  10453.             /* [in] */ REFIID riid,
  10454.             /* [iid_is][out] */ void **ppvObject);
  10455.         
  10456.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  10457.             IWMWriterAdvanced2 * This);
  10458.         
  10459.         ULONG ( STDMETHODCALLTYPE *Release )( 
  10460.             IWMWriterAdvanced2 * This);
  10461.         
  10462.         HRESULT ( STDMETHODCALLTYPE *GetSinkCount )( 
  10463.             IWMWriterAdvanced2 * This,
  10464.             /* [out] */ DWORD *pcSinks);
  10465.         
  10466.         HRESULT ( STDMETHODCALLTYPE *GetSink )( 
  10467.             IWMWriterAdvanced2 * This,
  10468.             /* [in] */ DWORD dwSinkNum,
  10469.             /* [out] */ IWMWriterSink **ppSink);
  10470.         
  10471.         HRESULT ( STDMETHODCALLTYPE *AddSink )( 
  10472.             IWMWriterAdvanced2 * This,
  10473.             /* [in] */ IWMWriterSink *pSink);
  10474.         
  10475.         HRESULT ( STDMETHODCALLTYPE *RemoveSink )( 
  10476.             IWMWriterAdvanced2 * This,
  10477.             /* [in] */ IWMWriterSink *pSink);
  10478.         
  10479.         HRESULT ( STDMETHODCALLTYPE *WriteStreamSample )( 
  10480.             IWMWriterAdvanced2 * This,
  10481.             /* [in] */ WORD wStreamNum,
  10482.             /* [in] */ QWORD cnsSampleTime,
  10483.             /* [in] */ DWORD msSampleSendTime,
  10484.             /* [in] */ QWORD cnsSampleDuration,
  10485.             /* [in] */ DWORD dwFlags,
  10486.             /* [in] */ INSSBuffer *pSample);
  10487.         
  10488.         HRESULT ( STDMETHODCALLTYPE *SetLiveSource )( 
  10489.             IWMWriterAdvanced2 * This,
  10490.             BOOL fIsLiveSource);
  10491.         
  10492.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  10493.             IWMWriterAdvanced2 * This,
  10494.             /* [out] */ BOOL *pfRealTime);
  10495.         
  10496.         HRESULT ( STDMETHODCALLTYPE *GetWriterTime )( 
  10497.             IWMWriterAdvanced2 * This,
  10498.             /* [out] */ QWORD *pcnsCurrentTime);
  10499.         
  10500.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  10501.             IWMWriterAdvanced2 * This,
  10502.             /* [in] */ WORD wStreamNum,
  10503.             /* [out] */ WM_WRITER_STATISTICS *pStats);
  10504.         
  10505.         HRESULT ( STDMETHODCALLTYPE *SetSyncTolerance )( 
  10506.             IWMWriterAdvanced2 * This,
  10507.             /* [in] */ DWORD msWindow);
  10508.         
  10509.         HRESULT ( STDMETHODCALLTYPE *GetSyncTolerance )( 
  10510.             IWMWriterAdvanced2 * This,
  10511.             /* [out] */ DWORD *pmsWindow);
  10512.         
  10513.         HRESULT ( STDMETHODCALLTYPE *GetInputSetting )( 
  10514.             IWMWriterAdvanced2 * This,
  10515.             /* [in] */ DWORD dwInputNum,
  10516.             /* [in] */ LPCWSTR pszName,
  10517.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  10518.             /* [size_is][out] */ BYTE *pValue,
  10519.             /* [out][in] */ WORD *pcbLength);
  10520.         
  10521.         HRESULT ( STDMETHODCALLTYPE *SetInputSetting )( 
  10522.             IWMWriterAdvanced2 * This,
  10523.             /* [in] */ DWORD dwInputNum,
  10524.             /* [in] */ LPCWSTR pszName,
  10525.             /* [in] */ WMT_ATTR_DATATYPE Type,
  10526.             /* [size_is][in] */ const BYTE *pValue,
  10527.             /* [in] */ WORD cbLength);
  10528.         
  10529.         END_INTERFACE
  10530.     } IWMWriterAdvanced2Vtbl;
  10531.  
  10532.     interface IWMWriterAdvanced2
  10533.     {
  10534.         CONST_VTBL struct IWMWriterAdvanced2Vtbl *lpVtbl;
  10535.     };
  10536.  
  10537.     
  10538.  
  10539. #ifdef COBJMACROS
  10540.  
  10541.  
  10542. #define IWMWriterAdvanced2_QueryInterface(This,riid,ppvObject)    \
  10543.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  10544.  
  10545. #define IWMWriterAdvanced2_AddRef(This)    \
  10546.     (This)->lpVtbl -> AddRef(This)
  10547.  
  10548. #define IWMWriterAdvanced2_Release(This)    \
  10549.     (This)->lpVtbl -> Release(This)
  10550.  
  10551.  
  10552. #define IWMWriterAdvanced2_GetSinkCount(This,pcSinks)    \
  10553.     (This)->lpVtbl -> GetSinkCount(This,pcSinks)
  10554.  
  10555. #define IWMWriterAdvanced2_GetSink(This,dwSinkNum,ppSink)    \
  10556.     (This)->lpVtbl -> GetSink(This,dwSinkNum,ppSink)
  10557.  
  10558. #define IWMWriterAdvanced2_AddSink(This,pSink)    \
  10559.     (This)->lpVtbl -> AddSink(This,pSink)
  10560.  
  10561. #define IWMWriterAdvanced2_RemoveSink(This,pSink)    \
  10562.     (This)->lpVtbl -> RemoveSink(This,pSink)
  10563.  
  10564. #define IWMWriterAdvanced2_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)    \
  10565.     (This)->lpVtbl -> WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
  10566.  
  10567. #define IWMWriterAdvanced2_SetLiveSource(This,fIsLiveSource)    \
  10568.     (This)->lpVtbl -> SetLiveSource(This,fIsLiveSource)
  10569.  
  10570. #define IWMWriterAdvanced2_IsRealTime(This,pfRealTime)    \
  10571.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  10572.  
  10573. #define IWMWriterAdvanced2_GetWriterTime(This,pcnsCurrentTime)    \
  10574.     (This)->lpVtbl -> GetWriterTime(This,pcnsCurrentTime)
  10575.  
  10576. #define IWMWriterAdvanced2_GetStatistics(This,wStreamNum,pStats)    \
  10577.     (This)->lpVtbl -> GetStatistics(This,wStreamNum,pStats)
  10578.  
  10579. #define IWMWriterAdvanced2_SetSyncTolerance(This,msWindow)    \
  10580.     (This)->lpVtbl -> SetSyncTolerance(This,msWindow)
  10581.  
  10582. #define IWMWriterAdvanced2_GetSyncTolerance(This,pmsWindow)    \
  10583.     (This)->lpVtbl -> GetSyncTolerance(This,pmsWindow)
  10584.  
  10585.  
  10586. #define IWMWriterAdvanced2_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)    \
  10587.     (This)->lpVtbl -> GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
  10588.  
  10589. #define IWMWriterAdvanced2_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)    \
  10590.     (This)->lpVtbl -> SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
  10591.  
  10592. #endif /* COBJMACROS */
  10593.  
  10594.  
  10595. #endif     /* C style interface */
  10596.  
  10597.  
  10598.  
  10599. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced2_GetInputSetting_Proxy( 
  10600.     IWMWriterAdvanced2 * This,
  10601.     /* [in] */ DWORD dwInputNum,
  10602.     /* [in] */ LPCWSTR pszName,
  10603.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  10604.     /* [size_is][out] */ BYTE *pValue,
  10605.     /* [out][in] */ WORD *pcbLength);
  10606.  
  10607.  
  10608. void __RPC_STUB IWMWriterAdvanced2_GetInputSetting_Stub(
  10609.     IRpcStubBuffer *This,
  10610.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10611.     PRPC_MESSAGE _pRpcMessage,
  10612.     DWORD *_pdwStubPhase);
  10613.  
  10614.  
  10615. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced2_SetInputSetting_Proxy( 
  10616.     IWMWriterAdvanced2 * This,
  10617.     /* [in] */ DWORD dwInputNum,
  10618.     /* [in] */ LPCWSTR pszName,
  10619.     /* [in] */ WMT_ATTR_DATATYPE Type,
  10620.     /* [size_is][in] */ const BYTE *pValue,
  10621.     /* [in] */ WORD cbLength);
  10622.  
  10623.  
  10624. void __RPC_STUB IWMWriterAdvanced2_SetInputSetting_Stub(
  10625.     IRpcStubBuffer *This,
  10626.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10627.     PRPC_MESSAGE _pRpcMessage,
  10628.     DWORD *_pdwStubPhase);
  10629.  
  10630.  
  10631.  
  10632. #endif     /* __IWMWriterAdvanced2_INTERFACE_DEFINED__ */
  10633.  
  10634.  
  10635. #ifndef __IWMWriterAdvanced3_INTERFACE_DEFINED__
  10636. #define __IWMWriterAdvanced3_INTERFACE_DEFINED__
  10637.  
  10638. /* interface IWMWriterAdvanced3 */
  10639. /* [local][unique][helpstring][uuid][object] */ 
  10640.  
  10641.  
  10642. EXTERN_C const IID IID_IWMWriterAdvanced3;
  10643.  
  10644. #if defined(__cplusplus) && !defined(CINTERFACE)
  10645.     
  10646.     MIDL_INTERFACE("2cd6492d-7c37-4e76-9d3b-59261183a22e")
  10647.     IWMWriterAdvanced3 : public IWMWriterAdvanced2
  10648.     {
  10649.     public:
  10650.         virtual HRESULT STDMETHODCALLTYPE GetStatisticsEx( 
  10651.             /* [in] */ WORD wStreamNum,
  10652.             /* [out] */ WM_WRITER_STATISTICS_EX *pStats) = 0;
  10653.         
  10654.         virtual HRESULT STDMETHODCALLTYPE SetNonBlocking( void) = 0;
  10655.         
  10656.     };
  10657.     
  10658. #else     /* C style interface */
  10659.  
  10660.     typedef struct IWMWriterAdvanced3Vtbl
  10661.     {
  10662.         BEGIN_INTERFACE
  10663.         
  10664.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  10665.             IWMWriterAdvanced3 * This,
  10666.             /* [in] */ REFIID riid,
  10667.             /* [iid_is][out] */ void **ppvObject);
  10668.         
  10669.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  10670.             IWMWriterAdvanced3 * This);
  10671.         
  10672.         ULONG ( STDMETHODCALLTYPE *Release )( 
  10673.             IWMWriterAdvanced3 * This);
  10674.         
  10675.         HRESULT ( STDMETHODCALLTYPE *GetSinkCount )( 
  10676.             IWMWriterAdvanced3 * This,
  10677.             /* [out] */ DWORD *pcSinks);
  10678.         
  10679.         HRESULT ( STDMETHODCALLTYPE *GetSink )( 
  10680.             IWMWriterAdvanced3 * This,
  10681.             /* [in] */ DWORD dwSinkNum,
  10682.             /* [out] */ IWMWriterSink **ppSink);
  10683.         
  10684.         HRESULT ( STDMETHODCALLTYPE *AddSink )( 
  10685.             IWMWriterAdvanced3 * This,
  10686.             /* [in] */ IWMWriterSink *pSink);
  10687.         
  10688.         HRESULT ( STDMETHODCALLTYPE *RemoveSink )( 
  10689.             IWMWriterAdvanced3 * This,
  10690.             /* [in] */ IWMWriterSink *pSink);
  10691.         
  10692.         HRESULT ( STDMETHODCALLTYPE *WriteStreamSample )( 
  10693.             IWMWriterAdvanced3 * This,
  10694.             /* [in] */ WORD wStreamNum,
  10695.             /* [in] */ QWORD cnsSampleTime,
  10696.             /* [in] */ DWORD msSampleSendTime,
  10697.             /* [in] */ QWORD cnsSampleDuration,
  10698.             /* [in] */ DWORD dwFlags,
  10699.             /* [in] */ INSSBuffer *pSample);
  10700.         
  10701.         HRESULT ( STDMETHODCALLTYPE *SetLiveSource )( 
  10702.             IWMWriterAdvanced3 * This,
  10703.             BOOL fIsLiveSource);
  10704.         
  10705.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  10706.             IWMWriterAdvanced3 * This,
  10707.             /* [out] */ BOOL *pfRealTime);
  10708.         
  10709.         HRESULT ( STDMETHODCALLTYPE *GetWriterTime )( 
  10710.             IWMWriterAdvanced3 * This,
  10711.             /* [out] */ QWORD *pcnsCurrentTime);
  10712.         
  10713.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  10714.             IWMWriterAdvanced3 * This,
  10715.             /* [in] */ WORD wStreamNum,
  10716.             /* [out] */ WM_WRITER_STATISTICS *pStats);
  10717.         
  10718.         HRESULT ( STDMETHODCALLTYPE *SetSyncTolerance )( 
  10719.             IWMWriterAdvanced3 * This,
  10720.             /* [in] */ DWORD msWindow);
  10721.         
  10722.         HRESULT ( STDMETHODCALLTYPE *GetSyncTolerance )( 
  10723.             IWMWriterAdvanced3 * This,
  10724.             /* [out] */ DWORD *pmsWindow);
  10725.         
  10726.         HRESULT ( STDMETHODCALLTYPE *GetInputSetting )( 
  10727.             IWMWriterAdvanced3 * This,
  10728.             /* [in] */ DWORD dwInputNum,
  10729.             /* [in] */ LPCWSTR pszName,
  10730.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  10731.             /* [size_is][out] */ BYTE *pValue,
  10732.             /* [out][in] */ WORD *pcbLength);
  10733.         
  10734.         HRESULT ( STDMETHODCALLTYPE *SetInputSetting )( 
  10735.             IWMWriterAdvanced3 * This,
  10736.             /* [in] */ DWORD dwInputNum,
  10737.             /* [in] */ LPCWSTR pszName,
  10738.             /* [in] */ WMT_ATTR_DATATYPE Type,
  10739.             /* [size_is][in] */ const BYTE *pValue,
  10740.             /* [in] */ WORD cbLength);
  10741.         
  10742.         HRESULT ( STDMETHODCALLTYPE *GetStatisticsEx )( 
  10743.             IWMWriterAdvanced3 * This,
  10744.             /* [in] */ WORD wStreamNum,
  10745.             /* [out] */ WM_WRITER_STATISTICS_EX *pStats);
  10746.         
  10747.         HRESULT ( STDMETHODCALLTYPE *SetNonBlocking )( 
  10748.             IWMWriterAdvanced3 * This);
  10749.         
  10750.         END_INTERFACE
  10751.     } IWMWriterAdvanced3Vtbl;
  10752.  
  10753.     interface IWMWriterAdvanced3
  10754.     {
  10755.         CONST_VTBL struct IWMWriterAdvanced3Vtbl *lpVtbl;
  10756.     };
  10757.  
  10758.     
  10759.  
  10760. #ifdef COBJMACROS
  10761.  
  10762.  
  10763. #define IWMWriterAdvanced3_QueryInterface(This,riid,ppvObject)    \
  10764.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  10765.  
  10766. #define IWMWriterAdvanced3_AddRef(This)    \
  10767.     (This)->lpVtbl -> AddRef(This)
  10768.  
  10769. #define IWMWriterAdvanced3_Release(This)    \
  10770.     (This)->lpVtbl -> Release(This)
  10771.  
  10772.  
  10773. #define IWMWriterAdvanced3_GetSinkCount(This,pcSinks)    \
  10774.     (This)->lpVtbl -> GetSinkCount(This,pcSinks)
  10775.  
  10776. #define IWMWriterAdvanced3_GetSink(This,dwSinkNum,ppSink)    \
  10777.     (This)->lpVtbl -> GetSink(This,dwSinkNum,ppSink)
  10778.  
  10779. #define IWMWriterAdvanced3_AddSink(This,pSink)    \
  10780.     (This)->lpVtbl -> AddSink(This,pSink)
  10781.  
  10782. #define IWMWriterAdvanced3_RemoveSink(This,pSink)    \
  10783.     (This)->lpVtbl -> RemoveSink(This,pSink)
  10784.  
  10785. #define IWMWriterAdvanced3_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)    \
  10786.     (This)->lpVtbl -> WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
  10787.  
  10788. #define IWMWriterAdvanced3_SetLiveSource(This,fIsLiveSource)    \
  10789.     (This)->lpVtbl -> SetLiveSource(This,fIsLiveSource)
  10790.  
  10791. #define IWMWriterAdvanced3_IsRealTime(This,pfRealTime)    \
  10792.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  10793.  
  10794. #define IWMWriterAdvanced3_GetWriterTime(This,pcnsCurrentTime)    \
  10795.     (This)->lpVtbl -> GetWriterTime(This,pcnsCurrentTime)
  10796.  
  10797. #define IWMWriterAdvanced3_GetStatistics(This,wStreamNum,pStats)    \
  10798.     (This)->lpVtbl -> GetStatistics(This,wStreamNum,pStats)
  10799.  
  10800. #define IWMWriterAdvanced3_SetSyncTolerance(This,msWindow)    \
  10801.     (This)->lpVtbl -> SetSyncTolerance(This,msWindow)
  10802.  
  10803. #define IWMWriterAdvanced3_GetSyncTolerance(This,pmsWindow)    \
  10804.     (This)->lpVtbl -> GetSyncTolerance(This,pmsWindow)
  10805.  
  10806.  
  10807. #define IWMWriterAdvanced3_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)    \
  10808.     (This)->lpVtbl -> GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
  10809.  
  10810. #define IWMWriterAdvanced3_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)    \
  10811.     (This)->lpVtbl -> SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
  10812.  
  10813.  
  10814. #define IWMWriterAdvanced3_GetStatisticsEx(This,wStreamNum,pStats)    \
  10815.     (This)->lpVtbl -> GetStatisticsEx(This,wStreamNum,pStats)
  10816.  
  10817. #define IWMWriterAdvanced3_SetNonBlocking(This)    \
  10818.     (This)->lpVtbl -> SetNonBlocking(This)
  10819.  
  10820. #endif /* COBJMACROS */
  10821.  
  10822.  
  10823. #endif     /* C style interface */
  10824.  
  10825.  
  10826.  
  10827. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced3_GetStatisticsEx_Proxy( 
  10828.     IWMWriterAdvanced3 * This,
  10829.     /* [in] */ WORD wStreamNum,
  10830.     /* [out] */ WM_WRITER_STATISTICS_EX *pStats);
  10831.  
  10832.  
  10833. void __RPC_STUB IWMWriterAdvanced3_GetStatisticsEx_Stub(
  10834.     IRpcStubBuffer *This,
  10835.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10836.     PRPC_MESSAGE _pRpcMessage,
  10837.     DWORD *_pdwStubPhase);
  10838.  
  10839.  
  10840. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced3_SetNonBlocking_Proxy( 
  10841.     IWMWriterAdvanced3 * This);
  10842.  
  10843.  
  10844. void __RPC_STUB IWMWriterAdvanced3_SetNonBlocking_Stub(
  10845.     IRpcStubBuffer *This,
  10846.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10847.     PRPC_MESSAGE _pRpcMessage,
  10848.     DWORD *_pdwStubPhase);
  10849.  
  10850.  
  10851.  
  10852. #endif     /* __IWMWriterAdvanced3_INTERFACE_DEFINED__ */
  10853.  
  10854.  
  10855. #ifndef __IWMWriterPreprocess_INTERFACE_DEFINED__
  10856. #define __IWMWriterPreprocess_INTERFACE_DEFINED__
  10857.  
  10858. /* interface IWMWriterPreprocess */
  10859. /* [local][unique][helpstring][uuid][object] */ 
  10860.  
  10861.  
  10862. EXTERN_C const IID IID_IWMWriterPreprocess;
  10863.  
  10864. #if defined(__cplusplus) && !defined(CINTERFACE)
  10865.     
  10866.     MIDL_INTERFACE("fc54a285-38c4-45b5-aa23-85b9f7cb424b")
  10867.     IWMWriterPreprocess : public IUnknown
  10868.     {
  10869.     public:
  10870.         virtual HRESULT STDMETHODCALLTYPE GetMaxPreprocessingPasses( 
  10871.             /* [in] */ DWORD dwInputNum,
  10872.             /* [in] */ DWORD dwFlags,
  10873.             /* [out] */ DWORD *pdwMaxNumPasses) = 0;
  10874.         
  10875.         virtual HRESULT STDMETHODCALLTYPE SetNumPreprocessingPasses( 
  10876.             /* [in] */ DWORD dwInputNum,
  10877.             /* [in] */ DWORD dwFlags,
  10878.             /* [in] */ DWORD dwNumPasses) = 0;
  10879.         
  10880.         virtual HRESULT STDMETHODCALLTYPE BeginPreprocessingPass( 
  10881.             /* [in] */ DWORD dwInputNum,
  10882.             /* [in] */ DWORD dwFlags) = 0;
  10883.         
  10884.         virtual HRESULT STDMETHODCALLTYPE PreprocessSample( 
  10885.             /* [in] */ DWORD dwInputNum,
  10886.             /* [in] */ QWORD cnsSampleTime,
  10887.             /* [in] */ DWORD dwFlags,
  10888.             /* [in] */ INSSBuffer *pSample) = 0;
  10889.         
  10890.         virtual HRESULT STDMETHODCALLTYPE EndPreprocessingPass( 
  10891.             /* [in] */ DWORD dwInputNum,
  10892.             /* [in] */ DWORD dwFlags) = 0;
  10893.         
  10894.     };
  10895.     
  10896. #else     /* C style interface */
  10897.  
  10898.     typedef struct IWMWriterPreprocessVtbl
  10899.     {
  10900.         BEGIN_INTERFACE
  10901.         
  10902.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  10903.             IWMWriterPreprocess * This,
  10904.             /* [in] */ REFIID riid,
  10905.             /* [iid_is][out] */ void **ppvObject);
  10906.         
  10907.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  10908.             IWMWriterPreprocess * This);
  10909.         
  10910.         ULONG ( STDMETHODCALLTYPE *Release )( 
  10911.             IWMWriterPreprocess * This);
  10912.         
  10913.         HRESULT ( STDMETHODCALLTYPE *GetMaxPreprocessingPasses )( 
  10914.             IWMWriterPreprocess * This,
  10915.             /* [in] */ DWORD dwInputNum,
  10916.             /* [in] */ DWORD dwFlags,
  10917.             /* [out] */ DWORD *pdwMaxNumPasses);
  10918.         
  10919.         HRESULT ( STDMETHODCALLTYPE *SetNumPreprocessingPasses )( 
  10920.             IWMWriterPreprocess * This,
  10921.             /* [in] */ DWORD dwInputNum,
  10922.             /* [in] */ DWORD dwFlags,
  10923.             /* [in] */ DWORD dwNumPasses);
  10924.         
  10925.         HRESULT ( STDMETHODCALLTYPE *BeginPreprocessingPass )( 
  10926.             IWMWriterPreprocess * This,
  10927.             /* [in] */ DWORD dwInputNum,
  10928.             /* [in] */ DWORD dwFlags);
  10929.         
  10930.         HRESULT ( STDMETHODCALLTYPE *PreprocessSample )( 
  10931.             IWMWriterPreprocess * This,
  10932.             /* [in] */ DWORD dwInputNum,
  10933.             /* [in] */ QWORD cnsSampleTime,
  10934.             /* [in] */ DWORD dwFlags,
  10935.             /* [in] */ INSSBuffer *pSample);
  10936.         
  10937.         HRESULT ( STDMETHODCALLTYPE *EndPreprocessingPass )( 
  10938.             IWMWriterPreprocess * This,
  10939.             /* [in] */ DWORD dwInputNum,
  10940.             /* [in] */ DWORD dwFlags);
  10941.         
  10942.         END_INTERFACE
  10943.     } IWMWriterPreprocessVtbl;
  10944.  
  10945.     interface IWMWriterPreprocess
  10946.     {
  10947.         CONST_VTBL struct IWMWriterPreprocessVtbl *lpVtbl;
  10948.     };
  10949.  
  10950.     
  10951.  
  10952. #ifdef COBJMACROS
  10953.  
  10954.  
  10955. #define IWMWriterPreprocess_QueryInterface(This,riid,ppvObject)    \
  10956.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  10957.  
  10958. #define IWMWriterPreprocess_AddRef(This)    \
  10959.     (This)->lpVtbl -> AddRef(This)
  10960.  
  10961. #define IWMWriterPreprocess_Release(This)    \
  10962.     (This)->lpVtbl -> Release(This)
  10963.  
  10964.  
  10965. #define IWMWriterPreprocess_GetMaxPreprocessingPasses(This,dwInputNum,dwFlags,pdwMaxNumPasses)    \
  10966.     (This)->lpVtbl -> GetMaxPreprocessingPasses(This,dwInputNum,dwFlags,pdwMaxNumPasses)
  10967.  
  10968. #define IWMWriterPreprocess_SetNumPreprocessingPasses(This,dwInputNum,dwFlags,dwNumPasses)    \
  10969.     (This)->lpVtbl -> SetNumPreprocessingPasses(This,dwInputNum,dwFlags,dwNumPasses)
  10970.  
  10971. #define IWMWriterPreprocess_BeginPreprocessingPass(This,dwInputNum,dwFlags)    \
  10972.     (This)->lpVtbl -> BeginPreprocessingPass(This,dwInputNum,dwFlags)
  10973.  
  10974. #define IWMWriterPreprocess_PreprocessSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample)    \
  10975.     (This)->lpVtbl -> PreprocessSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample)
  10976.  
  10977. #define IWMWriterPreprocess_EndPreprocessingPass(This,dwInputNum,dwFlags)    \
  10978.     (This)->lpVtbl -> EndPreprocessingPass(This,dwInputNum,dwFlags)
  10979.  
  10980. #endif /* COBJMACROS */
  10981.  
  10982.  
  10983. #endif     /* C style interface */
  10984.  
  10985.  
  10986.  
  10987. HRESULT STDMETHODCALLTYPE IWMWriterPreprocess_GetMaxPreprocessingPasses_Proxy( 
  10988.     IWMWriterPreprocess * This,
  10989.     /* [in] */ DWORD dwInputNum,
  10990.     /* [in] */ DWORD dwFlags,
  10991.     /* [out] */ DWORD *pdwMaxNumPasses);
  10992.  
  10993.  
  10994. void __RPC_STUB IWMWriterPreprocess_GetMaxPreprocessingPasses_Stub(
  10995.     IRpcStubBuffer *This,
  10996.     IRpcChannelBuffer *_pRpcChannelBuffer,
  10997.     PRPC_MESSAGE _pRpcMessage,
  10998.     DWORD *_pdwStubPhase);
  10999.  
  11000.  
  11001. HRESULT STDMETHODCALLTYPE IWMWriterPreprocess_SetNumPreprocessingPasses_Proxy( 
  11002.     IWMWriterPreprocess * This,
  11003.     /* [in] */ DWORD dwInputNum,
  11004.     /* [in] */ DWORD dwFlags,
  11005.     /* [in] */ DWORD dwNumPasses);
  11006.  
  11007.  
  11008. void __RPC_STUB IWMWriterPreprocess_SetNumPreprocessingPasses_Stub(
  11009.     IRpcStubBuffer *This,
  11010.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11011.     PRPC_MESSAGE _pRpcMessage,
  11012.     DWORD *_pdwStubPhase);
  11013.  
  11014.  
  11015. HRESULT STDMETHODCALLTYPE IWMWriterPreprocess_BeginPreprocessingPass_Proxy( 
  11016.     IWMWriterPreprocess * This,
  11017.     /* [in] */ DWORD dwInputNum,
  11018.     /* [in] */ DWORD dwFlags);
  11019.  
  11020.  
  11021. void __RPC_STUB IWMWriterPreprocess_BeginPreprocessingPass_Stub(
  11022.     IRpcStubBuffer *This,
  11023.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11024.     PRPC_MESSAGE _pRpcMessage,
  11025.     DWORD *_pdwStubPhase);
  11026.  
  11027.  
  11028. HRESULT STDMETHODCALLTYPE IWMWriterPreprocess_PreprocessSample_Proxy( 
  11029.     IWMWriterPreprocess * This,
  11030.     /* [in] */ DWORD dwInputNum,
  11031.     /* [in] */ QWORD cnsSampleTime,
  11032.     /* [in] */ DWORD dwFlags,
  11033.     /* [in] */ INSSBuffer *pSample);
  11034.  
  11035.  
  11036. void __RPC_STUB IWMWriterPreprocess_PreprocessSample_Stub(
  11037.     IRpcStubBuffer *This,
  11038.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11039.     PRPC_MESSAGE _pRpcMessage,
  11040.     DWORD *_pdwStubPhase);
  11041.  
  11042.  
  11043. HRESULT STDMETHODCALLTYPE IWMWriterPreprocess_EndPreprocessingPass_Proxy( 
  11044.     IWMWriterPreprocess * This,
  11045.     /* [in] */ DWORD dwInputNum,
  11046.     /* [in] */ DWORD dwFlags);
  11047.  
  11048.  
  11049. void __RPC_STUB IWMWriterPreprocess_EndPreprocessingPass_Stub(
  11050.     IRpcStubBuffer *This,
  11051.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11052.     PRPC_MESSAGE _pRpcMessage,
  11053.     DWORD *_pdwStubPhase);
  11054.  
  11055.  
  11056.  
  11057. #endif     /* __IWMWriterPreprocess_INTERFACE_DEFINED__ */
  11058.  
  11059.  
  11060. #ifndef __IWMWriterPostViewCallback_INTERFACE_DEFINED__
  11061. #define __IWMWriterPostViewCallback_INTERFACE_DEFINED__
  11062.  
  11063. /* interface IWMWriterPostViewCallback */
  11064. /* [local][unique][helpstring][uuid][object] */ 
  11065.  
  11066.  
  11067. EXTERN_C const IID IID_IWMWriterPostViewCallback;
  11068.  
  11069. #if defined(__cplusplus) && !defined(CINTERFACE)
  11070.     
  11071.     MIDL_INTERFACE("D9D6549D-A193-4f24-B308-03123D9B7F8D")
  11072.     IWMWriterPostViewCallback : public IWMStatusCallback
  11073.     {
  11074.     public:
  11075.         virtual HRESULT STDMETHODCALLTYPE OnPostViewSample( 
  11076.             /* [in] */ WORD wStreamNumber,
  11077.             /* [in] */ QWORD cnsSampleTime,
  11078.             /* [in] */ QWORD cnsSampleDuration,
  11079.             /* [in] */ DWORD dwFlags,
  11080.             /* [in] */ INSSBuffer *pSample,
  11081.             /* [in] */ void *pvContext) = 0;
  11082.         
  11083.         virtual HRESULT STDMETHODCALLTYPE AllocateForPostView( 
  11084.             /* [in] */ WORD wStreamNum,
  11085.             /* [in] */ DWORD cbBuffer,
  11086.             /* [out] */ INSSBuffer **ppBuffer,
  11087.             /* [in] */ void *pvContext) = 0;
  11088.         
  11089.     };
  11090.     
  11091. #else     /* C style interface */
  11092.  
  11093.     typedef struct IWMWriterPostViewCallbackVtbl
  11094.     {
  11095.         BEGIN_INTERFACE
  11096.         
  11097.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  11098.             IWMWriterPostViewCallback * This,
  11099.             /* [in] */ REFIID riid,
  11100.             /* [iid_is][out] */ void **ppvObject);
  11101.         
  11102.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  11103.             IWMWriterPostViewCallback * This);
  11104.         
  11105.         ULONG ( STDMETHODCALLTYPE *Release )( 
  11106.             IWMWriterPostViewCallback * This);
  11107.         
  11108.         HRESULT ( STDMETHODCALLTYPE *OnStatus )( 
  11109.             IWMWriterPostViewCallback * This,
  11110.             /* [in] */ WMT_STATUS Status,
  11111.             /* [in] */ HRESULT hr,
  11112.             /* [in] */ WMT_ATTR_DATATYPE dwType,
  11113.             /* [in] */ BYTE *pValue,
  11114.             /* [in] */ void *pvContext);
  11115.         
  11116.         HRESULT ( STDMETHODCALLTYPE *OnPostViewSample )( 
  11117.             IWMWriterPostViewCallback * This,
  11118.             /* [in] */ WORD wStreamNumber,
  11119.             /* [in] */ QWORD cnsSampleTime,
  11120.             /* [in] */ QWORD cnsSampleDuration,
  11121.             /* [in] */ DWORD dwFlags,
  11122.             /* [in] */ INSSBuffer *pSample,
  11123.             /* [in] */ void *pvContext);
  11124.         
  11125.         HRESULT ( STDMETHODCALLTYPE *AllocateForPostView )( 
  11126.             IWMWriterPostViewCallback * This,
  11127.             /* [in] */ WORD wStreamNum,
  11128.             /* [in] */ DWORD cbBuffer,
  11129.             /* [out] */ INSSBuffer **ppBuffer,
  11130.             /* [in] */ void *pvContext);
  11131.         
  11132.         END_INTERFACE
  11133.     } IWMWriterPostViewCallbackVtbl;
  11134.  
  11135.     interface IWMWriterPostViewCallback
  11136.     {
  11137.         CONST_VTBL struct IWMWriterPostViewCallbackVtbl *lpVtbl;
  11138.     };
  11139.  
  11140.     
  11141.  
  11142. #ifdef COBJMACROS
  11143.  
  11144.  
  11145. #define IWMWriterPostViewCallback_QueryInterface(This,riid,ppvObject)    \
  11146.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  11147.  
  11148. #define IWMWriterPostViewCallback_AddRef(This)    \
  11149.     (This)->lpVtbl -> AddRef(This)
  11150.  
  11151. #define IWMWriterPostViewCallback_Release(This)    \
  11152.     (This)->lpVtbl -> Release(This)
  11153.  
  11154.  
  11155. #define IWMWriterPostViewCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext)    \
  11156.     (This)->lpVtbl -> OnStatus(This,Status,hr,dwType,pValue,pvContext)
  11157.  
  11158.  
  11159. #define IWMWriterPostViewCallback_OnPostViewSample(This,wStreamNumber,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)    \
  11160.     (This)->lpVtbl -> OnPostViewSample(This,wStreamNumber,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)
  11161.  
  11162. #define IWMWriterPostViewCallback_AllocateForPostView(This,wStreamNum,cbBuffer,ppBuffer,pvContext)    \
  11163.     (This)->lpVtbl -> AllocateForPostView(This,wStreamNum,cbBuffer,ppBuffer,pvContext)
  11164.  
  11165. #endif /* COBJMACROS */
  11166.  
  11167.  
  11168. #endif     /* C style interface */
  11169.  
  11170.  
  11171.  
  11172. HRESULT STDMETHODCALLTYPE IWMWriterPostViewCallback_OnPostViewSample_Proxy( 
  11173.     IWMWriterPostViewCallback * This,
  11174.     /* [in] */ WORD wStreamNumber,
  11175.     /* [in] */ QWORD cnsSampleTime,
  11176.     /* [in] */ QWORD cnsSampleDuration,
  11177.     /* [in] */ DWORD dwFlags,
  11178.     /* [in] */ INSSBuffer *pSample,
  11179.     /* [in] */ void *pvContext);
  11180.  
  11181.  
  11182. void __RPC_STUB IWMWriterPostViewCallback_OnPostViewSample_Stub(
  11183.     IRpcStubBuffer *This,
  11184.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11185.     PRPC_MESSAGE _pRpcMessage,
  11186.     DWORD *_pdwStubPhase);
  11187.  
  11188.  
  11189. HRESULT STDMETHODCALLTYPE IWMWriterPostViewCallback_AllocateForPostView_Proxy( 
  11190.     IWMWriterPostViewCallback * This,
  11191.     /* [in] */ WORD wStreamNum,
  11192.     /* [in] */ DWORD cbBuffer,
  11193.     /* [out] */ INSSBuffer **ppBuffer,
  11194.     /* [in] */ void *pvContext);
  11195.  
  11196.  
  11197. void __RPC_STUB IWMWriterPostViewCallback_AllocateForPostView_Stub(
  11198.     IRpcStubBuffer *This,
  11199.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11200.     PRPC_MESSAGE _pRpcMessage,
  11201.     DWORD *_pdwStubPhase);
  11202.  
  11203.  
  11204.  
  11205. #endif     /* __IWMWriterPostViewCallback_INTERFACE_DEFINED__ */
  11206.  
  11207.  
  11208. #ifndef __IWMWriterPostView_INTERFACE_DEFINED__
  11209. #define __IWMWriterPostView_INTERFACE_DEFINED__
  11210.  
  11211. /* interface IWMWriterPostView */
  11212. /* [local][unique][helpstring][uuid][object] */ 
  11213.  
  11214.  
  11215. EXTERN_C const IID IID_IWMWriterPostView;
  11216.  
  11217. #if defined(__cplusplus) && !defined(CINTERFACE)
  11218.     
  11219.     MIDL_INTERFACE("81E20CE4-75EF-491a-8004-FC53C45BDC3E")
  11220.     IWMWriterPostView : public IUnknown
  11221.     {
  11222.     public:
  11223.         virtual HRESULT STDMETHODCALLTYPE SetPostViewCallback( 
  11224.             IWMWriterPostViewCallback *pCallback,
  11225.             void *pvContext) = 0;
  11226.         
  11227.         virtual HRESULT STDMETHODCALLTYPE SetReceivePostViewSamples( 
  11228.             /* [in] */ WORD wStreamNum,
  11229.             /* [in] */ BOOL fReceivePostViewSamples) = 0;
  11230.         
  11231.         virtual HRESULT STDMETHODCALLTYPE GetReceivePostViewSamples( 
  11232.             /* [in] */ WORD wStreamNum,
  11233.             /* [out] */ BOOL *pfReceivePostViewSamples) = 0;
  11234.         
  11235.         virtual HRESULT STDMETHODCALLTYPE GetPostViewProps( 
  11236.             /* [in] */ WORD wStreamNumber,
  11237.             /* [out] */ IWMMediaProps **ppOutput) = 0;
  11238.         
  11239.         virtual HRESULT STDMETHODCALLTYPE SetPostViewProps( 
  11240.             /* [in] */ WORD wStreamNumber,
  11241.             /* [in] */ IWMMediaProps *pOutput) = 0;
  11242.         
  11243.         virtual HRESULT STDMETHODCALLTYPE GetPostViewFormatCount( 
  11244.             /* [in] */ WORD wStreamNumber,
  11245.             /* [out] */ DWORD *pcFormats) = 0;
  11246.         
  11247.         virtual HRESULT STDMETHODCALLTYPE GetPostViewFormat( 
  11248.             /* [in] */ WORD wStreamNumber,
  11249.             /* [in] */ DWORD dwFormatNumber,
  11250.             /* [out] */ IWMMediaProps **ppProps) = 0;
  11251.         
  11252.         virtual HRESULT STDMETHODCALLTYPE SetAllocateForPostView( 
  11253.             /* [in] */ WORD wStreamNumber,
  11254.             /* [in] */ BOOL fAllocate) = 0;
  11255.         
  11256.         virtual HRESULT STDMETHODCALLTYPE GetAllocateForPostView( 
  11257.             /* [in] */ WORD wStreamNumber,
  11258.             /* [out] */ BOOL *pfAllocate) = 0;
  11259.         
  11260.     };
  11261.     
  11262. #else     /* C style interface */
  11263.  
  11264.     typedef struct IWMWriterPostViewVtbl
  11265.     {
  11266.         BEGIN_INTERFACE
  11267.         
  11268.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  11269.             IWMWriterPostView * This,
  11270.             /* [in] */ REFIID riid,
  11271.             /* [iid_is][out] */ void **ppvObject);
  11272.         
  11273.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  11274.             IWMWriterPostView * This);
  11275.         
  11276.         ULONG ( STDMETHODCALLTYPE *Release )( 
  11277.             IWMWriterPostView * This);
  11278.         
  11279.         HRESULT ( STDMETHODCALLTYPE *SetPostViewCallback )( 
  11280.             IWMWriterPostView * This,
  11281.             IWMWriterPostViewCallback *pCallback,
  11282.             void *pvContext);
  11283.         
  11284.         HRESULT ( STDMETHODCALLTYPE *SetReceivePostViewSamples )( 
  11285.             IWMWriterPostView * This,
  11286.             /* [in] */ WORD wStreamNum,
  11287.             /* [in] */ BOOL fReceivePostViewSamples);
  11288.         
  11289.         HRESULT ( STDMETHODCALLTYPE *GetReceivePostViewSamples )( 
  11290.             IWMWriterPostView * This,
  11291.             /* [in] */ WORD wStreamNum,
  11292.             /* [out] */ BOOL *pfReceivePostViewSamples);
  11293.         
  11294.         HRESULT ( STDMETHODCALLTYPE *GetPostViewProps )( 
  11295.             IWMWriterPostView * This,
  11296.             /* [in] */ WORD wStreamNumber,
  11297.             /* [out] */ IWMMediaProps **ppOutput);
  11298.         
  11299.         HRESULT ( STDMETHODCALLTYPE *SetPostViewProps )( 
  11300.             IWMWriterPostView * This,
  11301.             /* [in] */ WORD wStreamNumber,
  11302.             /* [in] */ IWMMediaProps *pOutput);
  11303.         
  11304.         HRESULT ( STDMETHODCALLTYPE *GetPostViewFormatCount )( 
  11305.             IWMWriterPostView * This,
  11306.             /* [in] */ WORD wStreamNumber,
  11307.             /* [out] */ DWORD *pcFormats);
  11308.         
  11309.         HRESULT ( STDMETHODCALLTYPE *GetPostViewFormat )( 
  11310.             IWMWriterPostView * This,
  11311.             /* [in] */ WORD wStreamNumber,
  11312.             /* [in] */ DWORD dwFormatNumber,
  11313.             /* [out] */ IWMMediaProps **ppProps);
  11314.         
  11315.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForPostView )( 
  11316.             IWMWriterPostView * This,
  11317.             /* [in] */ WORD wStreamNumber,
  11318.             /* [in] */ BOOL fAllocate);
  11319.         
  11320.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForPostView )( 
  11321.             IWMWriterPostView * This,
  11322.             /* [in] */ WORD wStreamNumber,
  11323.             /* [out] */ BOOL *pfAllocate);
  11324.         
  11325.         END_INTERFACE
  11326.     } IWMWriterPostViewVtbl;
  11327.  
  11328.     interface IWMWriterPostView
  11329.     {
  11330.         CONST_VTBL struct IWMWriterPostViewVtbl *lpVtbl;
  11331.     };
  11332.  
  11333.     
  11334.  
  11335. #ifdef COBJMACROS
  11336.  
  11337.  
  11338. #define IWMWriterPostView_QueryInterface(This,riid,ppvObject)    \
  11339.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  11340.  
  11341. #define IWMWriterPostView_AddRef(This)    \
  11342.     (This)->lpVtbl -> AddRef(This)
  11343.  
  11344. #define IWMWriterPostView_Release(This)    \
  11345.     (This)->lpVtbl -> Release(This)
  11346.  
  11347.  
  11348. #define IWMWriterPostView_SetPostViewCallback(This,pCallback,pvContext)    \
  11349.     (This)->lpVtbl -> SetPostViewCallback(This,pCallback,pvContext)
  11350.  
  11351. #define IWMWriterPostView_SetReceivePostViewSamples(This,wStreamNum,fReceivePostViewSamples)    \
  11352.     (This)->lpVtbl -> SetReceivePostViewSamples(This,wStreamNum,fReceivePostViewSamples)
  11353.  
  11354. #define IWMWriterPostView_GetReceivePostViewSamples(This,wStreamNum,pfReceivePostViewSamples)    \
  11355.     (This)->lpVtbl -> GetReceivePostViewSamples(This,wStreamNum,pfReceivePostViewSamples)
  11356.  
  11357. #define IWMWriterPostView_GetPostViewProps(This,wStreamNumber,ppOutput)    \
  11358.     (This)->lpVtbl -> GetPostViewProps(This,wStreamNumber,ppOutput)
  11359.  
  11360. #define IWMWriterPostView_SetPostViewProps(This,wStreamNumber,pOutput)    \
  11361.     (This)->lpVtbl -> SetPostViewProps(This,wStreamNumber,pOutput)
  11362.  
  11363. #define IWMWriterPostView_GetPostViewFormatCount(This,wStreamNumber,pcFormats)    \
  11364.     (This)->lpVtbl -> GetPostViewFormatCount(This,wStreamNumber,pcFormats)
  11365.  
  11366. #define IWMWriterPostView_GetPostViewFormat(This,wStreamNumber,dwFormatNumber,ppProps)    \
  11367.     (This)->lpVtbl -> GetPostViewFormat(This,wStreamNumber,dwFormatNumber,ppProps)
  11368.  
  11369. #define IWMWriterPostView_SetAllocateForPostView(This,wStreamNumber,fAllocate)    \
  11370.     (This)->lpVtbl -> SetAllocateForPostView(This,wStreamNumber,fAllocate)
  11371.  
  11372. #define IWMWriterPostView_GetAllocateForPostView(This,wStreamNumber,pfAllocate)    \
  11373.     (This)->lpVtbl -> GetAllocateForPostView(This,wStreamNumber,pfAllocate)
  11374.  
  11375. #endif /* COBJMACROS */
  11376.  
  11377.  
  11378. #endif     /* C style interface */
  11379.  
  11380.  
  11381.  
  11382. HRESULT STDMETHODCALLTYPE IWMWriterPostView_SetPostViewCallback_Proxy( 
  11383.     IWMWriterPostView * This,
  11384.     IWMWriterPostViewCallback *pCallback,
  11385.     void *pvContext);
  11386.  
  11387.  
  11388. void __RPC_STUB IWMWriterPostView_SetPostViewCallback_Stub(
  11389.     IRpcStubBuffer *This,
  11390.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11391.     PRPC_MESSAGE _pRpcMessage,
  11392.     DWORD *_pdwStubPhase);
  11393.  
  11394.  
  11395. HRESULT STDMETHODCALLTYPE IWMWriterPostView_SetReceivePostViewSamples_Proxy( 
  11396.     IWMWriterPostView * This,
  11397.     /* [in] */ WORD wStreamNum,
  11398.     /* [in] */ BOOL fReceivePostViewSamples);
  11399.  
  11400.  
  11401. void __RPC_STUB IWMWriterPostView_SetReceivePostViewSamples_Stub(
  11402.     IRpcStubBuffer *This,
  11403.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11404.     PRPC_MESSAGE _pRpcMessage,
  11405.     DWORD *_pdwStubPhase);
  11406.  
  11407.  
  11408. HRESULT STDMETHODCALLTYPE IWMWriterPostView_GetReceivePostViewSamples_Proxy( 
  11409.     IWMWriterPostView * This,
  11410.     /* [in] */ WORD wStreamNum,
  11411.     /* [out] */ BOOL *pfReceivePostViewSamples);
  11412.  
  11413.  
  11414. void __RPC_STUB IWMWriterPostView_GetReceivePostViewSamples_Stub(
  11415.     IRpcStubBuffer *This,
  11416.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11417.     PRPC_MESSAGE _pRpcMessage,
  11418.     DWORD *_pdwStubPhase);
  11419.  
  11420.  
  11421. HRESULT STDMETHODCALLTYPE IWMWriterPostView_GetPostViewProps_Proxy( 
  11422.     IWMWriterPostView * This,
  11423.     /* [in] */ WORD wStreamNumber,
  11424.     /* [out] */ IWMMediaProps **ppOutput);
  11425.  
  11426.  
  11427. void __RPC_STUB IWMWriterPostView_GetPostViewProps_Stub(
  11428.     IRpcStubBuffer *This,
  11429.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11430.     PRPC_MESSAGE _pRpcMessage,
  11431.     DWORD *_pdwStubPhase);
  11432.  
  11433.  
  11434. HRESULT STDMETHODCALLTYPE IWMWriterPostView_SetPostViewProps_Proxy( 
  11435.     IWMWriterPostView * This,
  11436.     /* [in] */ WORD wStreamNumber,
  11437.     /* [in] */ IWMMediaProps *pOutput);
  11438.  
  11439.  
  11440. void __RPC_STUB IWMWriterPostView_SetPostViewProps_Stub(
  11441.     IRpcStubBuffer *This,
  11442.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11443.     PRPC_MESSAGE _pRpcMessage,
  11444.     DWORD *_pdwStubPhase);
  11445.  
  11446.  
  11447. HRESULT STDMETHODCALLTYPE IWMWriterPostView_GetPostViewFormatCount_Proxy( 
  11448.     IWMWriterPostView * This,
  11449.     /* [in] */ WORD wStreamNumber,
  11450.     /* [out] */ DWORD *pcFormats);
  11451.  
  11452.  
  11453. void __RPC_STUB IWMWriterPostView_GetPostViewFormatCount_Stub(
  11454.     IRpcStubBuffer *This,
  11455.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11456.     PRPC_MESSAGE _pRpcMessage,
  11457.     DWORD *_pdwStubPhase);
  11458.  
  11459.  
  11460. HRESULT STDMETHODCALLTYPE IWMWriterPostView_GetPostViewFormat_Proxy( 
  11461.     IWMWriterPostView * This,
  11462.     /* [in] */ WORD wStreamNumber,
  11463.     /* [in] */ DWORD dwFormatNumber,
  11464.     /* [out] */ IWMMediaProps **ppProps);
  11465.  
  11466.  
  11467. void __RPC_STUB IWMWriterPostView_GetPostViewFormat_Stub(
  11468.     IRpcStubBuffer *This,
  11469.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11470.     PRPC_MESSAGE _pRpcMessage,
  11471.     DWORD *_pdwStubPhase);
  11472.  
  11473.  
  11474. HRESULT STDMETHODCALLTYPE IWMWriterPostView_SetAllocateForPostView_Proxy( 
  11475.     IWMWriterPostView * This,
  11476.     /* [in] */ WORD wStreamNumber,
  11477.     /* [in] */ BOOL fAllocate);
  11478.  
  11479.  
  11480. void __RPC_STUB IWMWriterPostView_SetAllocateForPostView_Stub(
  11481.     IRpcStubBuffer *This,
  11482.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11483.     PRPC_MESSAGE _pRpcMessage,
  11484.     DWORD *_pdwStubPhase);
  11485.  
  11486.  
  11487. HRESULT STDMETHODCALLTYPE IWMWriterPostView_GetAllocateForPostView_Proxy( 
  11488.     IWMWriterPostView * This,
  11489.     /* [in] */ WORD wStreamNumber,
  11490.     /* [out] */ BOOL *pfAllocate);
  11491.  
  11492.  
  11493. void __RPC_STUB IWMWriterPostView_GetAllocateForPostView_Stub(
  11494.     IRpcStubBuffer *This,
  11495.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11496.     PRPC_MESSAGE _pRpcMessage,
  11497.     DWORD *_pdwStubPhase);
  11498.  
  11499.  
  11500.  
  11501. #endif     /* __IWMWriterPostView_INTERFACE_DEFINED__ */
  11502.  
  11503.  
  11504. #ifndef __IWMWriterSink_INTERFACE_DEFINED__
  11505. #define __IWMWriterSink_INTERFACE_DEFINED__
  11506.  
  11507. /* interface IWMWriterSink */
  11508. /* [local][unique][helpstring][uuid][object] */ 
  11509.  
  11510.  
  11511. EXTERN_C const IID IID_IWMWriterSink;
  11512.  
  11513. #if defined(__cplusplus) && !defined(CINTERFACE)
  11514.     
  11515.     MIDL_INTERFACE("96406BE4-2B2B-11d3-B36B-00C04F6108FF")
  11516.     IWMWriterSink : public IUnknown
  11517.     {
  11518.     public:
  11519.         virtual HRESULT STDMETHODCALLTYPE OnHeader( 
  11520.             /* [in] */ INSSBuffer *pHeader) = 0;
  11521.         
  11522.         virtual HRESULT STDMETHODCALLTYPE IsRealTime( 
  11523.             /* [out] */ BOOL *pfRealTime) = 0;
  11524.         
  11525.         virtual HRESULT STDMETHODCALLTYPE AllocateDataUnit( 
  11526.             /* [in] */ DWORD cbDataUnit,
  11527.             /* [out] */ INSSBuffer **ppDataUnit) = 0;
  11528.         
  11529.         virtual HRESULT STDMETHODCALLTYPE OnDataUnit( 
  11530.             /* [in] */ INSSBuffer *pDataUnit) = 0;
  11531.         
  11532.         virtual HRESULT STDMETHODCALLTYPE OnEndWriting( void) = 0;
  11533.         
  11534.     };
  11535.     
  11536. #else     /* C style interface */
  11537.  
  11538.     typedef struct IWMWriterSinkVtbl
  11539.     {
  11540.         BEGIN_INTERFACE
  11541.         
  11542.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  11543.             IWMWriterSink * This,
  11544.             /* [in] */ REFIID riid,
  11545.             /* [iid_is][out] */ void **ppvObject);
  11546.         
  11547.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  11548.             IWMWriterSink * This);
  11549.         
  11550.         ULONG ( STDMETHODCALLTYPE *Release )( 
  11551.             IWMWriterSink * This);
  11552.         
  11553.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  11554.             IWMWriterSink * This,
  11555.             /* [in] */ INSSBuffer *pHeader);
  11556.         
  11557.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  11558.             IWMWriterSink * This,
  11559.             /* [out] */ BOOL *pfRealTime);
  11560.         
  11561.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  11562.             IWMWriterSink * This,
  11563.             /* [in] */ DWORD cbDataUnit,
  11564.             /* [out] */ INSSBuffer **ppDataUnit);
  11565.         
  11566.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  11567.             IWMWriterSink * This,
  11568.             /* [in] */ INSSBuffer *pDataUnit);
  11569.         
  11570.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  11571.             IWMWriterSink * This);
  11572.         
  11573.         END_INTERFACE
  11574.     } IWMWriterSinkVtbl;
  11575.  
  11576.     interface IWMWriterSink
  11577.     {
  11578.         CONST_VTBL struct IWMWriterSinkVtbl *lpVtbl;
  11579.     };
  11580.  
  11581.     
  11582.  
  11583. #ifdef COBJMACROS
  11584.  
  11585.  
  11586. #define IWMWriterSink_QueryInterface(This,riid,ppvObject)    \
  11587.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  11588.  
  11589. #define IWMWriterSink_AddRef(This)    \
  11590.     (This)->lpVtbl -> AddRef(This)
  11591.  
  11592. #define IWMWriterSink_Release(This)    \
  11593.     (This)->lpVtbl -> Release(This)
  11594.  
  11595.  
  11596. #define IWMWriterSink_OnHeader(This,pHeader)    \
  11597.     (This)->lpVtbl -> OnHeader(This,pHeader)
  11598.  
  11599. #define IWMWriterSink_IsRealTime(This,pfRealTime)    \
  11600.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  11601.  
  11602. #define IWMWriterSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit)    \
  11603.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  11604.  
  11605. #define IWMWriterSink_OnDataUnit(This,pDataUnit)    \
  11606.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  11607.  
  11608. #define IWMWriterSink_OnEndWriting(This)    \
  11609.     (This)->lpVtbl -> OnEndWriting(This)
  11610.  
  11611. #endif /* COBJMACROS */
  11612.  
  11613.  
  11614. #endif     /* C style interface */
  11615.  
  11616.  
  11617.  
  11618. HRESULT STDMETHODCALLTYPE IWMWriterSink_OnHeader_Proxy( 
  11619.     IWMWriterSink * This,
  11620.     /* [in] */ INSSBuffer *pHeader);
  11621.  
  11622.  
  11623. void __RPC_STUB IWMWriterSink_OnHeader_Stub(
  11624.     IRpcStubBuffer *This,
  11625.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11626.     PRPC_MESSAGE _pRpcMessage,
  11627.     DWORD *_pdwStubPhase);
  11628.  
  11629.  
  11630. HRESULT STDMETHODCALLTYPE IWMWriterSink_IsRealTime_Proxy( 
  11631.     IWMWriterSink * This,
  11632.     /* [out] */ BOOL *pfRealTime);
  11633.  
  11634.  
  11635. void __RPC_STUB IWMWriterSink_IsRealTime_Stub(
  11636.     IRpcStubBuffer *This,
  11637.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11638.     PRPC_MESSAGE _pRpcMessage,
  11639.     DWORD *_pdwStubPhase);
  11640.  
  11641.  
  11642. HRESULT STDMETHODCALLTYPE IWMWriterSink_AllocateDataUnit_Proxy( 
  11643.     IWMWriterSink * This,
  11644.     /* [in] */ DWORD cbDataUnit,
  11645.     /* [out] */ INSSBuffer **ppDataUnit);
  11646.  
  11647.  
  11648. void __RPC_STUB IWMWriterSink_AllocateDataUnit_Stub(
  11649.     IRpcStubBuffer *This,
  11650.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11651.     PRPC_MESSAGE _pRpcMessage,
  11652.     DWORD *_pdwStubPhase);
  11653.  
  11654.  
  11655. HRESULT STDMETHODCALLTYPE IWMWriterSink_OnDataUnit_Proxy( 
  11656.     IWMWriterSink * This,
  11657.     /* [in] */ INSSBuffer *pDataUnit);
  11658.  
  11659.  
  11660. void __RPC_STUB IWMWriterSink_OnDataUnit_Stub(
  11661.     IRpcStubBuffer *This,
  11662.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11663.     PRPC_MESSAGE _pRpcMessage,
  11664.     DWORD *_pdwStubPhase);
  11665.  
  11666.  
  11667. HRESULT STDMETHODCALLTYPE IWMWriterSink_OnEndWriting_Proxy( 
  11668.     IWMWriterSink * This);
  11669.  
  11670.  
  11671. void __RPC_STUB IWMWriterSink_OnEndWriting_Stub(
  11672.     IRpcStubBuffer *This,
  11673.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11674.     PRPC_MESSAGE _pRpcMessage,
  11675.     DWORD *_pdwStubPhase);
  11676.  
  11677.  
  11678.  
  11679. #endif     /* __IWMWriterSink_INTERFACE_DEFINED__ */
  11680.  
  11681.  
  11682. #ifndef __IWMRegisterCallback_INTERFACE_DEFINED__
  11683. #define __IWMRegisterCallback_INTERFACE_DEFINED__
  11684.  
  11685. /* interface IWMRegisterCallback */
  11686. /* [local][unique][helpstring][uuid][object] */ 
  11687.  
  11688.  
  11689. EXTERN_C const IID IID_IWMRegisterCallback;
  11690.  
  11691. #if defined(__cplusplus) && !defined(CINTERFACE)
  11692.     
  11693.     MIDL_INTERFACE("CF4B1F99-4DE2-4e49-A363-252740D99BC1")
  11694.     IWMRegisterCallback : public IUnknown
  11695.     {
  11696.     public:
  11697.         virtual HRESULT STDMETHODCALLTYPE Advise( 
  11698.             /* [in] */ IWMStatusCallback *pCallback,
  11699.             /* [in] */ void *pvContext) = 0;
  11700.         
  11701.         virtual HRESULT STDMETHODCALLTYPE Unadvise( 
  11702.             /* [in] */ IWMStatusCallback *pCallback,
  11703.             /* [in] */ void *pvContext) = 0;
  11704.         
  11705.     };
  11706.     
  11707. #else     /* C style interface */
  11708.  
  11709.     typedef struct IWMRegisterCallbackVtbl
  11710.     {
  11711.         BEGIN_INTERFACE
  11712.         
  11713.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  11714.             IWMRegisterCallback * This,
  11715.             /* [in] */ REFIID riid,
  11716.             /* [iid_is][out] */ void **ppvObject);
  11717.         
  11718.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  11719.             IWMRegisterCallback * This);
  11720.         
  11721.         ULONG ( STDMETHODCALLTYPE *Release )( 
  11722.             IWMRegisterCallback * This);
  11723.         
  11724.         HRESULT ( STDMETHODCALLTYPE *Advise )( 
  11725.             IWMRegisterCallback * This,
  11726.             /* [in] */ IWMStatusCallback *pCallback,
  11727.             /* [in] */ void *pvContext);
  11728.         
  11729.         HRESULT ( STDMETHODCALLTYPE *Unadvise )( 
  11730.             IWMRegisterCallback * This,
  11731.             /* [in] */ IWMStatusCallback *pCallback,
  11732.             /* [in] */ void *pvContext);
  11733.         
  11734.         END_INTERFACE
  11735.     } IWMRegisterCallbackVtbl;
  11736.  
  11737.     interface IWMRegisterCallback
  11738.     {
  11739.         CONST_VTBL struct IWMRegisterCallbackVtbl *lpVtbl;
  11740.     };
  11741.  
  11742.     
  11743.  
  11744. #ifdef COBJMACROS
  11745.  
  11746.  
  11747. #define IWMRegisterCallback_QueryInterface(This,riid,ppvObject)    \
  11748.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  11749.  
  11750. #define IWMRegisterCallback_AddRef(This)    \
  11751.     (This)->lpVtbl -> AddRef(This)
  11752.  
  11753. #define IWMRegisterCallback_Release(This)    \
  11754.     (This)->lpVtbl -> Release(This)
  11755.  
  11756.  
  11757. #define IWMRegisterCallback_Advise(This,pCallback,pvContext)    \
  11758.     (This)->lpVtbl -> Advise(This,pCallback,pvContext)
  11759.  
  11760. #define IWMRegisterCallback_Unadvise(This,pCallback,pvContext)    \
  11761.     (This)->lpVtbl -> Unadvise(This,pCallback,pvContext)
  11762.  
  11763. #endif /* COBJMACROS */
  11764.  
  11765.  
  11766. #endif     /* C style interface */
  11767.  
  11768.  
  11769.  
  11770. HRESULT STDMETHODCALLTYPE IWMRegisterCallback_Advise_Proxy( 
  11771.     IWMRegisterCallback * This,
  11772.     /* [in] */ IWMStatusCallback *pCallback,
  11773.     /* [in] */ void *pvContext);
  11774.  
  11775.  
  11776. void __RPC_STUB IWMRegisterCallback_Advise_Stub(
  11777.     IRpcStubBuffer *This,
  11778.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11779.     PRPC_MESSAGE _pRpcMessage,
  11780.     DWORD *_pdwStubPhase);
  11781.  
  11782.  
  11783. HRESULT STDMETHODCALLTYPE IWMRegisterCallback_Unadvise_Proxy( 
  11784.     IWMRegisterCallback * This,
  11785.     /* [in] */ IWMStatusCallback *pCallback,
  11786.     /* [in] */ void *pvContext);
  11787.  
  11788.  
  11789. void __RPC_STUB IWMRegisterCallback_Unadvise_Stub(
  11790.     IRpcStubBuffer *This,
  11791.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11792.     PRPC_MESSAGE _pRpcMessage,
  11793.     DWORD *_pdwStubPhase);
  11794.  
  11795.  
  11796.  
  11797. #endif     /* __IWMRegisterCallback_INTERFACE_DEFINED__ */
  11798.  
  11799.  
  11800. #ifndef __IWMWriterFileSink_INTERFACE_DEFINED__
  11801. #define __IWMWriterFileSink_INTERFACE_DEFINED__
  11802.  
  11803. /* interface IWMWriterFileSink */
  11804. /* [local][unique][helpstring][uuid][object] */ 
  11805.  
  11806.  
  11807. EXTERN_C const IID IID_IWMWriterFileSink;
  11808.  
  11809. #if defined(__cplusplus) && !defined(CINTERFACE)
  11810.     
  11811.     MIDL_INTERFACE("96406BE5-2B2B-11d3-B36B-00C04F6108FF")
  11812.     IWMWriterFileSink : public IWMWriterSink
  11813.     {
  11814.     public:
  11815.         virtual HRESULT STDMETHODCALLTYPE Open( 
  11816.             /* [in] */ const WCHAR *pwszFilename) = 0;
  11817.         
  11818.     };
  11819.     
  11820. #else     /* C style interface */
  11821.  
  11822.     typedef struct IWMWriterFileSinkVtbl
  11823.     {
  11824.         BEGIN_INTERFACE
  11825.         
  11826.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  11827.             IWMWriterFileSink * This,
  11828.             /* [in] */ REFIID riid,
  11829.             /* [iid_is][out] */ void **ppvObject);
  11830.         
  11831.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  11832.             IWMWriterFileSink * This);
  11833.         
  11834.         ULONG ( STDMETHODCALLTYPE *Release )( 
  11835.             IWMWriterFileSink * This);
  11836.         
  11837.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  11838.             IWMWriterFileSink * This,
  11839.             /* [in] */ INSSBuffer *pHeader);
  11840.         
  11841.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  11842.             IWMWriterFileSink * This,
  11843.             /* [out] */ BOOL *pfRealTime);
  11844.         
  11845.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  11846.             IWMWriterFileSink * This,
  11847.             /* [in] */ DWORD cbDataUnit,
  11848.             /* [out] */ INSSBuffer **ppDataUnit);
  11849.         
  11850.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  11851.             IWMWriterFileSink * This,
  11852.             /* [in] */ INSSBuffer *pDataUnit);
  11853.         
  11854.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  11855.             IWMWriterFileSink * This);
  11856.         
  11857.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  11858.             IWMWriterFileSink * This,
  11859.             /* [in] */ const WCHAR *pwszFilename);
  11860.         
  11861.         END_INTERFACE
  11862.     } IWMWriterFileSinkVtbl;
  11863.  
  11864.     interface IWMWriterFileSink
  11865.     {
  11866.         CONST_VTBL struct IWMWriterFileSinkVtbl *lpVtbl;
  11867.     };
  11868.  
  11869.     
  11870.  
  11871. #ifdef COBJMACROS
  11872.  
  11873.  
  11874. #define IWMWriterFileSink_QueryInterface(This,riid,ppvObject)    \
  11875.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  11876.  
  11877. #define IWMWriterFileSink_AddRef(This)    \
  11878.     (This)->lpVtbl -> AddRef(This)
  11879.  
  11880. #define IWMWriterFileSink_Release(This)    \
  11881.     (This)->lpVtbl -> Release(This)
  11882.  
  11883.  
  11884. #define IWMWriterFileSink_OnHeader(This,pHeader)    \
  11885.     (This)->lpVtbl -> OnHeader(This,pHeader)
  11886.  
  11887. #define IWMWriterFileSink_IsRealTime(This,pfRealTime)    \
  11888.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  11889.  
  11890. #define IWMWriterFileSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit)    \
  11891.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  11892.  
  11893. #define IWMWriterFileSink_OnDataUnit(This,pDataUnit)    \
  11894.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  11895.  
  11896. #define IWMWriterFileSink_OnEndWriting(This)    \
  11897.     (This)->lpVtbl -> OnEndWriting(This)
  11898.  
  11899.  
  11900. #define IWMWriterFileSink_Open(This,pwszFilename)    \
  11901.     (This)->lpVtbl -> Open(This,pwszFilename)
  11902.  
  11903. #endif /* COBJMACROS */
  11904.  
  11905.  
  11906. #endif     /* C style interface */
  11907.  
  11908.  
  11909.  
  11910. HRESULT STDMETHODCALLTYPE IWMWriterFileSink_Open_Proxy( 
  11911.     IWMWriterFileSink * This,
  11912.     /* [in] */ const WCHAR *pwszFilename);
  11913.  
  11914.  
  11915. void __RPC_STUB IWMWriterFileSink_Open_Stub(
  11916.     IRpcStubBuffer *This,
  11917.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11918.     PRPC_MESSAGE _pRpcMessage,
  11919.     DWORD *_pdwStubPhase);
  11920.  
  11921.  
  11922.  
  11923. #endif     /* __IWMWriterFileSink_INTERFACE_DEFINED__ */
  11924.  
  11925.  
  11926. #ifndef __IWMWriterFileSink2_INTERFACE_DEFINED__
  11927. #define __IWMWriterFileSink2_INTERFACE_DEFINED__
  11928.  
  11929. /* interface IWMWriterFileSink2 */
  11930. /* [local][unique][helpstring][uuid][object] */ 
  11931.  
  11932.  
  11933. EXTERN_C const IID IID_IWMWriterFileSink2;
  11934.  
  11935. #if defined(__cplusplus) && !defined(CINTERFACE)
  11936.     
  11937.     MIDL_INTERFACE("14282BA7-4AEF-4205-8CE5-C229035A05BC")
  11938.     IWMWriterFileSink2 : public IWMWriterFileSink
  11939.     {
  11940.     public:
  11941.         virtual HRESULT STDMETHODCALLTYPE Start( 
  11942.             /* [in] */ QWORD cnsStartTime) = 0;
  11943.         
  11944.         virtual HRESULT STDMETHODCALLTYPE Stop( 
  11945.             /* [in] */ QWORD cnsStopTime) = 0;
  11946.         
  11947.         virtual HRESULT STDMETHODCALLTYPE IsStopped( 
  11948.             /* [out] */ BOOL *pfStopped) = 0;
  11949.         
  11950.         virtual HRESULT STDMETHODCALLTYPE GetFileDuration( 
  11951.             /* [out] */ QWORD *pcnsDuration) = 0;
  11952.         
  11953.         virtual HRESULT STDMETHODCALLTYPE GetFileSize( 
  11954.             /* [out] */ QWORD *pcbFile) = 0;
  11955.         
  11956.         virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  11957.         
  11958.         virtual HRESULT STDMETHODCALLTYPE IsClosed( 
  11959.             /* [out] */ BOOL *pfClosed) = 0;
  11960.         
  11961.     };
  11962.     
  11963. #else     /* C style interface */
  11964.  
  11965.     typedef struct IWMWriterFileSink2Vtbl
  11966.     {
  11967.         BEGIN_INTERFACE
  11968.         
  11969.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  11970.             IWMWriterFileSink2 * This,
  11971.             /* [in] */ REFIID riid,
  11972.             /* [iid_is][out] */ void **ppvObject);
  11973.         
  11974.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  11975.             IWMWriterFileSink2 * This);
  11976.         
  11977.         ULONG ( STDMETHODCALLTYPE *Release )( 
  11978.             IWMWriterFileSink2 * This);
  11979.         
  11980.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  11981.             IWMWriterFileSink2 * This,
  11982.             /* [in] */ INSSBuffer *pHeader);
  11983.         
  11984.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  11985.             IWMWriterFileSink2 * This,
  11986.             /* [out] */ BOOL *pfRealTime);
  11987.         
  11988.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  11989.             IWMWriterFileSink2 * This,
  11990.             /* [in] */ DWORD cbDataUnit,
  11991.             /* [out] */ INSSBuffer **ppDataUnit);
  11992.         
  11993.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  11994.             IWMWriterFileSink2 * This,
  11995.             /* [in] */ INSSBuffer *pDataUnit);
  11996.         
  11997.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  11998.             IWMWriterFileSink2 * This);
  11999.         
  12000.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  12001.             IWMWriterFileSink2 * This,
  12002.             /* [in] */ const WCHAR *pwszFilename);
  12003.         
  12004.         HRESULT ( STDMETHODCALLTYPE *Start )( 
  12005.             IWMWriterFileSink2 * This,
  12006.             /* [in] */ QWORD cnsStartTime);
  12007.         
  12008.         HRESULT ( STDMETHODCALLTYPE *Stop )( 
  12009.             IWMWriterFileSink2 * This,
  12010.             /* [in] */ QWORD cnsStopTime);
  12011.         
  12012.         HRESULT ( STDMETHODCALLTYPE *IsStopped )( 
  12013.             IWMWriterFileSink2 * This,
  12014.             /* [out] */ BOOL *pfStopped);
  12015.         
  12016.         HRESULT ( STDMETHODCALLTYPE *GetFileDuration )( 
  12017.             IWMWriterFileSink2 * This,
  12018.             /* [out] */ QWORD *pcnsDuration);
  12019.         
  12020.         HRESULT ( STDMETHODCALLTYPE *GetFileSize )( 
  12021.             IWMWriterFileSink2 * This,
  12022.             /* [out] */ QWORD *pcbFile);
  12023.         
  12024.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  12025.             IWMWriterFileSink2 * This);
  12026.         
  12027.         HRESULT ( STDMETHODCALLTYPE *IsClosed )( 
  12028.             IWMWriterFileSink2 * This,
  12029.             /* [out] */ BOOL *pfClosed);
  12030.         
  12031.         END_INTERFACE
  12032.     } IWMWriterFileSink2Vtbl;
  12033.  
  12034.     interface IWMWriterFileSink2
  12035.     {
  12036.         CONST_VTBL struct IWMWriterFileSink2Vtbl *lpVtbl;
  12037.     };
  12038.  
  12039.     
  12040.  
  12041. #ifdef COBJMACROS
  12042.  
  12043.  
  12044. #define IWMWriterFileSink2_QueryInterface(This,riid,ppvObject)    \
  12045.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  12046.  
  12047. #define IWMWriterFileSink2_AddRef(This)    \
  12048.     (This)->lpVtbl -> AddRef(This)
  12049.  
  12050. #define IWMWriterFileSink2_Release(This)    \
  12051.     (This)->lpVtbl -> Release(This)
  12052.  
  12053.  
  12054. #define IWMWriterFileSink2_OnHeader(This,pHeader)    \
  12055.     (This)->lpVtbl -> OnHeader(This,pHeader)
  12056.  
  12057. #define IWMWriterFileSink2_IsRealTime(This,pfRealTime)    \
  12058.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  12059.  
  12060. #define IWMWriterFileSink2_AllocateDataUnit(This,cbDataUnit,ppDataUnit)    \
  12061.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  12062.  
  12063. #define IWMWriterFileSink2_OnDataUnit(This,pDataUnit)    \
  12064.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  12065.  
  12066. #define IWMWriterFileSink2_OnEndWriting(This)    \
  12067.     (This)->lpVtbl -> OnEndWriting(This)
  12068.  
  12069.  
  12070. #define IWMWriterFileSink2_Open(This,pwszFilename)    \
  12071.     (This)->lpVtbl -> Open(This,pwszFilename)
  12072.  
  12073.  
  12074. #define IWMWriterFileSink2_Start(This,cnsStartTime)    \
  12075.     (This)->lpVtbl -> Start(This,cnsStartTime)
  12076.  
  12077. #define IWMWriterFileSink2_Stop(This,cnsStopTime)    \
  12078.     (This)->lpVtbl -> Stop(This,cnsStopTime)
  12079.  
  12080. #define IWMWriterFileSink2_IsStopped(This,pfStopped)    \
  12081.     (This)->lpVtbl -> IsStopped(This,pfStopped)
  12082.  
  12083. #define IWMWriterFileSink2_GetFileDuration(This,pcnsDuration)    \
  12084.     (This)->lpVtbl -> GetFileDuration(This,pcnsDuration)
  12085.  
  12086. #define IWMWriterFileSink2_GetFileSize(This,pcbFile)    \
  12087.     (This)->lpVtbl -> GetFileSize(This,pcbFile)
  12088.  
  12089. #define IWMWriterFileSink2_Close(This)    \
  12090.     (This)->lpVtbl -> Close(This)
  12091.  
  12092. #define IWMWriterFileSink2_IsClosed(This,pfClosed)    \
  12093.     (This)->lpVtbl -> IsClosed(This,pfClosed)
  12094.  
  12095. #endif /* COBJMACROS */
  12096.  
  12097.  
  12098. #endif     /* C style interface */
  12099.  
  12100.  
  12101.  
  12102. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_Start_Proxy( 
  12103.     IWMWriterFileSink2 * This,
  12104.     /* [in] */ QWORD cnsStartTime);
  12105.  
  12106.  
  12107. void __RPC_STUB IWMWriterFileSink2_Start_Stub(
  12108.     IRpcStubBuffer *This,
  12109.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12110.     PRPC_MESSAGE _pRpcMessage,
  12111.     DWORD *_pdwStubPhase);
  12112.  
  12113.  
  12114. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_Stop_Proxy( 
  12115.     IWMWriterFileSink2 * This,
  12116.     /* [in] */ QWORD cnsStopTime);
  12117.  
  12118.  
  12119. void __RPC_STUB IWMWriterFileSink2_Stop_Stub(
  12120.     IRpcStubBuffer *This,
  12121.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12122.     PRPC_MESSAGE _pRpcMessage,
  12123.     DWORD *_pdwStubPhase);
  12124.  
  12125.  
  12126. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_IsStopped_Proxy( 
  12127.     IWMWriterFileSink2 * This,
  12128.     /* [out] */ BOOL *pfStopped);
  12129.  
  12130.  
  12131. void __RPC_STUB IWMWriterFileSink2_IsStopped_Stub(
  12132.     IRpcStubBuffer *This,
  12133.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12134.     PRPC_MESSAGE _pRpcMessage,
  12135.     DWORD *_pdwStubPhase);
  12136.  
  12137.  
  12138. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_GetFileDuration_Proxy( 
  12139.     IWMWriterFileSink2 * This,
  12140.     /* [out] */ QWORD *pcnsDuration);
  12141.  
  12142.  
  12143. void __RPC_STUB IWMWriterFileSink2_GetFileDuration_Stub(
  12144.     IRpcStubBuffer *This,
  12145.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12146.     PRPC_MESSAGE _pRpcMessage,
  12147.     DWORD *_pdwStubPhase);
  12148.  
  12149.  
  12150. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_GetFileSize_Proxy( 
  12151.     IWMWriterFileSink2 * This,
  12152.     /* [out] */ QWORD *pcbFile);
  12153.  
  12154.  
  12155. void __RPC_STUB IWMWriterFileSink2_GetFileSize_Stub(
  12156.     IRpcStubBuffer *This,
  12157.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12158.     PRPC_MESSAGE _pRpcMessage,
  12159.     DWORD *_pdwStubPhase);
  12160.  
  12161.  
  12162. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_Close_Proxy( 
  12163.     IWMWriterFileSink2 * This);
  12164.  
  12165.  
  12166. void __RPC_STUB IWMWriterFileSink2_Close_Stub(
  12167.     IRpcStubBuffer *This,
  12168.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12169.     PRPC_MESSAGE _pRpcMessage,
  12170.     DWORD *_pdwStubPhase);
  12171.  
  12172.  
  12173. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_IsClosed_Proxy( 
  12174.     IWMWriterFileSink2 * This,
  12175.     /* [out] */ BOOL *pfClosed);
  12176.  
  12177.  
  12178. void __RPC_STUB IWMWriterFileSink2_IsClosed_Stub(
  12179.     IRpcStubBuffer *This,
  12180.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12181.     PRPC_MESSAGE _pRpcMessage,
  12182.     DWORD *_pdwStubPhase);
  12183.  
  12184.  
  12185.  
  12186. #endif     /* __IWMWriterFileSink2_INTERFACE_DEFINED__ */
  12187.  
  12188.  
  12189. #ifndef __IWMWriterFileSink3_INTERFACE_DEFINED__
  12190. #define __IWMWriterFileSink3_INTERFACE_DEFINED__
  12191.  
  12192. /* interface IWMWriterFileSink3 */
  12193. /* [local][unique][helpstring][uuid][object] */ 
  12194.  
  12195.  
  12196. EXTERN_C const IID IID_IWMWriterFileSink3;
  12197.  
  12198. #if defined(__cplusplus) && !defined(CINTERFACE)
  12199.     
  12200.     MIDL_INTERFACE("3FEA4FEB-2945-47A7-A1DD-C53A8FC4C45C")
  12201.     IWMWriterFileSink3 : public IWMWriterFileSink2
  12202.     {
  12203.     public:
  12204.         virtual HRESULT STDMETHODCALLTYPE SetAutoIndexing( 
  12205.             /* [in] */ BOOL fDoAutoIndexing) = 0;
  12206.         
  12207.         virtual HRESULT STDMETHODCALLTYPE GetAutoIndexing( 
  12208.             /* [out] */ BOOL *pfAutoIndexing) = 0;
  12209.         
  12210.         virtual HRESULT STDMETHODCALLTYPE SetControlStream( 
  12211.             /* [in] */ WORD wStreamNumber,
  12212.             /* [in] */ BOOL fShouldControlStartAndStop) = 0;
  12213.         
  12214.         virtual HRESULT STDMETHODCALLTYPE GetMode( 
  12215.             /* [out] */ DWORD *pdwFileSinkMode) = 0;
  12216.         
  12217.         virtual HRESULT STDMETHODCALLTYPE OnDataUnitEx( 
  12218.             /* [in] */ WMT_FILESINK_DATA_UNIT *pFileSinkDataUnit) = 0;
  12219.         
  12220.         virtual HRESULT STDMETHODCALLTYPE SetUnbufferedIO( 
  12221.             /* [in] */ BOOL fUnbufferedIO,
  12222.             /* [in] */ BOOL fRestrictMemUsage) = 0;
  12223.         
  12224.         virtual HRESULT STDMETHODCALLTYPE GetUnbufferedIO( 
  12225.             /* [out] */ BOOL *pfUnbufferedIO) = 0;
  12226.         
  12227.         virtual HRESULT STDMETHODCALLTYPE CompleteOperations( void) = 0;
  12228.         
  12229.     };
  12230.     
  12231. #else     /* C style interface */
  12232.  
  12233.     typedef struct IWMWriterFileSink3Vtbl
  12234.     {
  12235.         BEGIN_INTERFACE
  12236.         
  12237.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  12238.             IWMWriterFileSink3 * This,
  12239.             /* [in] */ REFIID riid,
  12240.             /* [iid_is][out] */ void **ppvObject);
  12241.         
  12242.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  12243.             IWMWriterFileSink3 * This);
  12244.         
  12245.         ULONG ( STDMETHODCALLTYPE *Release )( 
  12246.             IWMWriterFileSink3 * This);
  12247.         
  12248.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  12249.             IWMWriterFileSink3 * This,
  12250.             /* [in] */ INSSBuffer *pHeader);
  12251.         
  12252.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  12253.             IWMWriterFileSink3 * This,
  12254.             /* [out] */ BOOL *pfRealTime);
  12255.         
  12256.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  12257.             IWMWriterFileSink3 * This,
  12258.             /* [in] */ DWORD cbDataUnit,
  12259.             /* [out] */ INSSBuffer **ppDataUnit);
  12260.         
  12261.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  12262.             IWMWriterFileSink3 * This,
  12263.             /* [in] */ INSSBuffer *pDataUnit);
  12264.         
  12265.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  12266.             IWMWriterFileSink3 * This);
  12267.         
  12268.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  12269.             IWMWriterFileSink3 * This,
  12270.             /* [in] */ const WCHAR *pwszFilename);
  12271.         
  12272.         HRESULT ( STDMETHODCALLTYPE *Start )( 
  12273.             IWMWriterFileSink3 * This,
  12274.             /* [in] */ QWORD cnsStartTime);
  12275.         
  12276.         HRESULT ( STDMETHODCALLTYPE *Stop )( 
  12277.             IWMWriterFileSink3 * This,
  12278.             /* [in] */ QWORD cnsStopTime);
  12279.         
  12280.         HRESULT ( STDMETHODCALLTYPE *IsStopped )( 
  12281.             IWMWriterFileSink3 * This,
  12282.             /* [out] */ BOOL *pfStopped);
  12283.         
  12284.         HRESULT ( STDMETHODCALLTYPE *GetFileDuration )( 
  12285.             IWMWriterFileSink3 * This,
  12286.             /* [out] */ QWORD *pcnsDuration);
  12287.         
  12288.         HRESULT ( STDMETHODCALLTYPE *GetFileSize )( 
  12289.             IWMWriterFileSink3 * This,
  12290.             /* [out] */ QWORD *pcbFile);
  12291.         
  12292.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  12293.             IWMWriterFileSink3 * This);
  12294.         
  12295.         HRESULT ( STDMETHODCALLTYPE *IsClosed )( 
  12296.             IWMWriterFileSink3 * This,
  12297.             /* [out] */ BOOL *pfClosed);
  12298.         
  12299.         HRESULT ( STDMETHODCALLTYPE *SetAutoIndexing )( 
  12300.             IWMWriterFileSink3 * This,
  12301.             /* [in] */ BOOL fDoAutoIndexing);
  12302.         
  12303.         HRESULT ( STDMETHODCALLTYPE *GetAutoIndexing )( 
  12304.             IWMWriterFileSink3 * This,
  12305.             /* [out] */ BOOL *pfAutoIndexing);
  12306.         
  12307.         HRESULT ( STDMETHODCALLTYPE *SetControlStream )( 
  12308.             IWMWriterFileSink3 * This,
  12309.             /* [in] */ WORD wStreamNumber,
  12310.             /* [in] */ BOOL fShouldControlStartAndStop);
  12311.         
  12312.         HRESULT ( STDMETHODCALLTYPE *GetMode )( 
  12313.             IWMWriterFileSink3 * This,
  12314.             /* [out] */ DWORD *pdwFileSinkMode);
  12315.         
  12316.         HRESULT ( STDMETHODCALLTYPE *OnDataUnitEx )( 
  12317.             IWMWriterFileSink3 * This,
  12318.             /* [in] */ WMT_FILESINK_DATA_UNIT *pFileSinkDataUnit);
  12319.         
  12320.         HRESULT ( STDMETHODCALLTYPE *SetUnbufferedIO )( 
  12321.             IWMWriterFileSink3 * This,
  12322.             /* [in] */ BOOL fUnbufferedIO,
  12323.             /* [in] */ BOOL fRestrictMemUsage);
  12324.         
  12325.         HRESULT ( STDMETHODCALLTYPE *GetUnbufferedIO )( 
  12326.             IWMWriterFileSink3 * This,
  12327.             /* [out] */ BOOL *pfUnbufferedIO);
  12328.         
  12329.         HRESULT ( STDMETHODCALLTYPE *CompleteOperations )( 
  12330.             IWMWriterFileSink3 * This);
  12331.         
  12332.         END_INTERFACE
  12333.     } IWMWriterFileSink3Vtbl;
  12334.  
  12335.     interface IWMWriterFileSink3
  12336.     {
  12337.         CONST_VTBL struct IWMWriterFileSink3Vtbl *lpVtbl;
  12338.     };
  12339.  
  12340.     
  12341.  
  12342. #ifdef COBJMACROS
  12343.  
  12344.  
  12345. #define IWMWriterFileSink3_QueryInterface(This,riid,ppvObject)    \
  12346.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  12347.  
  12348. #define IWMWriterFileSink3_AddRef(This)    \
  12349.     (This)->lpVtbl -> AddRef(This)
  12350.  
  12351. #define IWMWriterFileSink3_Release(This)    \
  12352.     (This)->lpVtbl -> Release(This)
  12353.  
  12354.  
  12355. #define IWMWriterFileSink3_OnHeader(This,pHeader)    \
  12356.     (This)->lpVtbl -> OnHeader(This,pHeader)
  12357.  
  12358. #define IWMWriterFileSink3_IsRealTime(This,pfRealTime)    \
  12359.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  12360.  
  12361. #define IWMWriterFileSink3_AllocateDataUnit(This,cbDataUnit,ppDataUnit)    \
  12362.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  12363.  
  12364. #define IWMWriterFileSink3_OnDataUnit(This,pDataUnit)    \
  12365.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  12366.  
  12367. #define IWMWriterFileSink3_OnEndWriting(This)    \
  12368.     (This)->lpVtbl -> OnEndWriting(This)
  12369.  
  12370.  
  12371. #define IWMWriterFileSink3_Open(This,pwszFilename)    \
  12372.     (This)->lpVtbl -> Open(This,pwszFilename)
  12373.  
  12374.  
  12375. #define IWMWriterFileSink3_Start(This,cnsStartTime)    \
  12376.     (This)->lpVtbl -> Start(This,cnsStartTime)
  12377.  
  12378. #define IWMWriterFileSink3_Stop(This,cnsStopTime)    \
  12379.     (This)->lpVtbl -> Stop(This,cnsStopTime)
  12380.  
  12381. #define IWMWriterFileSink3_IsStopped(This,pfStopped)    \
  12382.     (This)->lpVtbl -> IsStopped(This,pfStopped)
  12383.  
  12384. #define IWMWriterFileSink3_GetFileDuration(This,pcnsDuration)    \
  12385.     (This)->lpVtbl -> GetFileDuration(This,pcnsDuration)
  12386.  
  12387. #define IWMWriterFileSink3_GetFileSize(This,pcbFile)    \
  12388.     (This)->lpVtbl -> GetFileSize(This,pcbFile)
  12389.  
  12390. #define IWMWriterFileSink3_Close(This)    \
  12391.     (This)->lpVtbl -> Close(This)
  12392.  
  12393. #define IWMWriterFileSink3_IsClosed(This,pfClosed)    \
  12394.     (This)->lpVtbl -> IsClosed(This,pfClosed)
  12395.  
  12396.  
  12397. #define IWMWriterFileSink3_SetAutoIndexing(This,fDoAutoIndexing)    \
  12398.     (This)->lpVtbl -> SetAutoIndexing(This,fDoAutoIndexing)
  12399.  
  12400. #define IWMWriterFileSink3_GetAutoIndexing(This,pfAutoIndexing)    \
  12401.     (This)->lpVtbl -> GetAutoIndexing(This,pfAutoIndexing)
  12402.  
  12403. #define IWMWriterFileSink3_SetControlStream(This,wStreamNumber,fShouldControlStartAndStop)    \
  12404.     (This)->lpVtbl -> SetControlStream(This,wStreamNumber,fShouldControlStartAndStop)
  12405.  
  12406. #define IWMWriterFileSink3_GetMode(This,pdwFileSinkMode)    \
  12407.     (This)->lpVtbl -> GetMode(This,pdwFileSinkMode)
  12408.  
  12409. #define IWMWriterFileSink3_OnDataUnitEx(This,pFileSinkDataUnit)    \
  12410.     (This)->lpVtbl -> OnDataUnitEx(This,pFileSinkDataUnit)
  12411.  
  12412. #define IWMWriterFileSink3_SetUnbufferedIO(This,fUnbufferedIO,fRestrictMemUsage)    \
  12413.     (This)->lpVtbl -> SetUnbufferedIO(This,fUnbufferedIO,fRestrictMemUsage)
  12414.  
  12415. #define IWMWriterFileSink3_GetUnbufferedIO(This,pfUnbufferedIO)    \
  12416.     (This)->lpVtbl -> GetUnbufferedIO(This,pfUnbufferedIO)
  12417.  
  12418. #define IWMWriterFileSink3_CompleteOperations(This)    \
  12419.     (This)->lpVtbl -> CompleteOperations(This)
  12420.  
  12421. #endif /* COBJMACROS */
  12422.  
  12423.  
  12424. #endif     /* C style interface */
  12425.  
  12426.  
  12427.  
  12428. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_SetAutoIndexing_Proxy( 
  12429.     IWMWriterFileSink3 * This,
  12430.     /* [in] */ BOOL fDoAutoIndexing);
  12431.  
  12432.  
  12433. void __RPC_STUB IWMWriterFileSink3_SetAutoIndexing_Stub(
  12434.     IRpcStubBuffer *This,
  12435.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12436.     PRPC_MESSAGE _pRpcMessage,
  12437.     DWORD *_pdwStubPhase);
  12438.  
  12439.  
  12440. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_GetAutoIndexing_Proxy( 
  12441.     IWMWriterFileSink3 * This,
  12442.     /* [out] */ BOOL *pfAutoIndexing);
  12443.  
  12444.  
  12445. void __RPC_STUB IWMWriterFileSink3_GetAutoIndexing_Stub(
  12446.     IRpcStubBuffer *This,
  12447.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12448.     PRPC_MESSAGE _pRpcMessage,
  12449.     DWORD *_pdwStubPhase);
  12450.  
  12451.  
  12452. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_SetControlStream_Proxy( 
  12453.     IWMWriterFileSink3 * This,
  12454.     /* [in] */ WORD wStreamNumber,
  12455.     /* [in] */ BOOL fShouldControlStartAndStop);
  12456.  
  12457.  
  12458. void __RPC_STUB IWMWriterFileSink3_SetControlStream_Stub(
  12459.     IRpcStubBuffer *This,
  12460.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12461.     PRPC_MESSAGE _pRpcMessage,
  12462.     DWORD *_pdwStubPhase);
  12463.  
  12464.  
  12465. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_GetMode_Proxy( 
  12466.     IWMWriterFileSink3 * This,
  12467.     /* [out] */ DWORD *pdwFileSinkMode);
  12468.  
  12469.  
  12470. void __RPC_STUB IWMWriterFileSink3_GetMode_Stub(
  12471.     IRpcStubBuffer *This,
  12472.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12473.     PRPC_MESSAGE _pRpcMessage,
  12474.     DWORD *_pdwStubPhase);
  12475.  
  12476.  
  12477. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_OnDataUnitEx_Proxy( 
  12478.     IWMWriterFileSink3 * This,
  12479.     /* [in] */ WMT_FILESINK_DATA_UNIT *pFileSinkDataUnit);
  12480.  
  12481.  
  12482. void __RPC_STUB IWMWriterFileSink3_OnDataUnitEx_Stub(
  12483.     IRpcStubBuffer *This,
  12484.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12485.     PRPC_MESSAGE _pRpcMessage,
  12486.     DWORD *_pdwStubPhase);
  12487.  
  12488.  
  12489. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_SetUnbufferedIO_Proxy( 
  12490.     IWMWriterFileSink3 * This,
  12491.     /* [in] */ BOOL fUnbufferedIO,
  12492.     /* [in] */ BOOL fRestrictMemUsage);
  12493.  
  12494.  
  12495. void __RPC_STUB IWMWriterFileSink3_SetUnbufferedIO_Stub(
  12496.     IRpcStubBuffer *This,
  12497.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12498.     PRPC_MESSAGE _pRpcMessage,
  12499.     DWORD *_pdwStubPhase);
  12500.  
  12501.  
  12502. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_GetUnbufferedIO_Proxy( 
  12503.     IWMWriterFileSink3 * This,
  12504.     /* [out] */ BOOL *pfUnbufferedIO);
  12505.  
  12506.  
  12507. void __RPC_STUB IWMWriterFileSink3_GetUnbufferedIO_Stub(
  12508.     IRpcStubBuffer *This,
  12509.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12510.     PRPC_MESSAGE _pRpcMessage,
  12511.     DWORD *_pdwStubPhase);
  12512.  
  12513.  
  12514. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_CompleteOperations_Proxy( 
  12515.     IWMWriterFileSink3 * This);
  12516.  
  12517.  
  12518. void __RPC_STUB IWMWriterFileSink3_CompleteOperations_Stub(
  12519.     IRpcStubBuffer *This,
  12520.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12521.     PRPC_MESSAGE _pRpcMessage,
  12522.     DWORD *_pdwStubPhase);
  12523.  
  12524.  
  12525.  
  12526. #endif     /* __IWMWriterFileSink3_INTERFACE_DEFINED__ */
  12527.  
  12528.  
  12529. #ifndef __IWMWriterNetworkSink_INTERFACE_DEFINED__
  12530. #define __IWMWriterNetworkSink_INTERFACE_DEFINED__
  12531.  
  12532. /* interface IWMWriterNetworkSink */
  12533. /* [local][unique][helpstring][uuid][object] */ 
  12534.  
  12535.  
  12536. EXTERN_C const IID IID_IWMWriterNetworkSink;
  12537.  
  12538. #if defined(__cplusplus) && !defined(CINTERFACE)
  12539.     
  12540.     MIDL_INTERFACE("96406BE7-2B2B-11d3-B36B-00C04F6108FF")
  12541.     IWMWriterNetworkSink : public IWMWriterSink
  12542.     {
  12543.     public:
  12544.         virtual HRESULT STDMETHODCALLTYPE SetMaximumClients( 
  12545.             /* [in] */ DWORD dwMaxClients) = 0;
  12546.         
  12547.         virtual HRESULT STDMETHODCALLTYPE GetMaximumClients( 
  12548.             /* [out] */ DWORD *pdwMaxClients) = 0;
  12549.         
  12550.         virtual HRESULT STDMETHODCALLTYPE SetNetworkProtocol( 
  12551.             /* [in] */ WMT_NET_PROTOCOL protocol) = 0;
  12552.         
  12553.         virtual HRESULT STDMETHODCALLTYPE GetNetworkProtocol( 
  12554.             /* [out] */ WMT_NET_PROTOCOL *pProtocol) = 0;
  12555.         
  12556.         virtual HRESULT STDMETHODCALLTYPE GetHostURL( 
  12557.             /* [out] */ WCHAR *pwszURL,
  12558.             /* [out][in] */ DWORD *pcchURL) = 0;
  12559.         
  12560.         virtual HRESULT STDMETHODCALLTYPE Open( 
  12561.             /* [out][in] */ DWORD *pdwPortNum) = 0;
  12562.         
  12563.         virtual HRESULT STDMETHODCALLTYPE Disconnect( void) = 0;
  12564.         
  12565.         virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  12566.         
  12567.     };
  12568.     
  12569. #else     /* C style interface */
  12570.  
  12571.     typedef struct IWMWriterNetworkSinkVtbl
  12572.     {
  12573.         BEGIN_INTERFACE
  12574.         
  12575.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  12576.             IWMWriterNetworkSink * This,
  12577.             /* [in] */ REFIID riid,
  12578.             /* [iid_is][out] */ void **ppvObject);
  12579.         
  12580.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  12581.             IWMWriterNetworkSink * This);
  12582.         
  12583.         ULONG ( STDMETHODCALLTYPE *Release )( 
  12584.             IWMWriterNetworkSink * This);
  12585.         
  12586.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  12587.             IWMWriterNetworkSink * This,
  12588.             /* [in] */ INSSBuffer *pHeader);
  12589.         
  12590.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  12591.             IWMWriterNetworkSink * This,
  12592.             /* [out] */ BOOL *pfRealTime);
  12593.         
  12594.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  12595.             IWMWriterNetworkSink * This,
  12596.             /* [in] */ DWORD cbDataUnit,
  12597.             /* [out] */ INSSBuffer **ppDataUnit);
  12598.         
  12599.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  12600.             IWMWriterNetworkSink * This,
  12601.             /* [in] */ INSSBuffer *pDataUnit);
  12602.         
  12603.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  12604.             IWMWriterNetworkSink * This);
  12605.         
  12606.         HRESULT ( STDMETHODCALLTYPE *SetMaximumClients )( 
  12607.             IWMWriterNetworkSink * This,
  12608.             /* [in] */ DWORD dwMaxClients);
  12609.         
  12610.         HRESULT ( STDMETHODCALLTYPE *GetMaximumClients )( 
  12611.             IWMWriterNetworkSink * This,
  12612.             /* [out] */ DWORD *pdwMaxClients);
  12613.         
  12614.         HRESULT ( STDMETHODCALLTYPE *SetNetworkProtocol )( 
  12615.             IWMWriterNetworkSink * This,
  12616.             /* [in] */ WMT_NET_PROTOCOL protocol);
  12617.         
  12618.         HRESULT ( STDMETHODCALLTYPE *GetNetworkProtocol )( 
  12619.             IWMWriterNetworkSink * This,
  12620.             /* [out] */ WMT_NET_PROTOCOL *pProtocol);
  12621.         
  12622.         HRESULT ( STDMETHODCALLTYPE *GetHostURL )( 
  12623.             IWMWriterNetworkSink * This,
  12624.             /* [out] */ WCHAR *pwszURL,
  12625.             /* [out][in] */ DWORD *pcchURL);
  12626.         
  12627.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  12628.             IWMWriterNetworkSink * This,
  12629.             /* [out][in] */ DWORD *pdwPortNum);
  12630.         
  12631.         HRESULT ( STDMETHODCALLTYPE *Disconnect )( 
  12632.             IWMWriterNetworkSink * This);
  12633.         
  12634.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  12635.             IWMWriterNetworkSink * This);
  12636.         
  12637.         END_INTERFACE
  12638.     } IWMWriterNetworkSinkVtbl;
  12639.  
  12640.     interface IWMWriterNetworkSink
  12641.     {
  12642.         CONST_VTBL struct IWMWriterNetworkSinkVtbl *lpVtbl;
  12643.     };
  12644.  
  12645.     
  12646.  
  12647. #ifdef COBJMACROS
  12648.  
  12649.  
  12650. #define IWMWriterNetworkSink_QueryInterface(This,riid,ppvObject)    \
  12651.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  12652.  
  12653. #define IWMWriterNetworkSink_AddRef(This)    \
  12654.     (This)->lpVtbl -> AddRef(This)
  12655.  
  12656. #define IWMWriterNetworkSink_Release(This)    \
  12657.     (This)->lpVtbl -> Release(This)
  12658.  
  12659.  
  12660. #define IWMWriterNetworkSink_OnHeader(This,pHeader)    \
  12661.     (This)->lpVtbl -> OnHeader(This,pHeader)
  12662.  
  12663. #define IWMWriterNetworkSink_IsRealTime(This,pfRealTime)    \
  12664.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  12665.  
  12666. #define IWMWriterNetworkSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit)    \
  12667.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  12668.  
  12669. #define IWMWriterNetworkSink_OnDataUnit(This,pDataUnit)    \
  12670.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  12671.  
  12672. #define IWMWriterNetworkSink_OnEndWriting(This)    \
  12673.     (This)->lpVtbl -> OnEndWriting(This)
  12674.  
  12675.  
  12676. #define IWMWriterNetworkSink_SetMaximumClients(This,dwMaxClients)    \
  12677.     (This)->lpVtbl -> SetMaximumClients(This,dwMaxClients)
  12678.  
  12679. #define IWMWriterNetworkSink_GetMaximumClients(This,pdwMaxClients)    \
  12680.     (This)->lpVtbl -> GetMaximumClients(This,pdwMaxClients)
  12681.  
  12682. #define IWMWriterNetworkSink_SetNetworkProtocol(This,protocol)    \
  12683.     (This)->lpVtbl -> SetNetworkProtocol(This,protocol)
  12684.  
  12685. #define IWMWriterNetworkSink_GetNetworkProtocol(This,pProtocol)    \
  12686.     (This)->lpVtbl -> GetNetworkProtocol(This,pProtocol)
  12687.  
  12688. #define IWMWriterNetworkSink_GetHostURL(This,pwszURL,pcchURL)    \
  12689.     (This)->lpVtbl -> GetHostURL(This,pwszURL,pcchURL)
  12690.  
  12691. #define IWMWriterNetworkSink_Open(This,pdwPortNum)    \
  12692.     (This)->lpVtbl -> Open(This,pdwPortNum)
  12693.  
  12694. #define IWMWriterNetworkSink_Disconnect(This)    \
  12695.     (This)->lpVtbl -> Disconnect(This)
  12696.  
  12697. #define IWMWriterNetworkSink_Close(This)    \
  12698.     (This)->lpVtbl -> Close(This)
  12699.  
  12700. #endif /* COBJMACROS */
  12701.  
  12702.  
  12703. #endif     /* C style interface */
  12704.  
  12705.  
  12706.  
  12707. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_SetMaximumClients_Proxy( 
  12708.     IWMWriterNetworkSink * This,
  12709.     /* [in] */ DWORD dwMaxClients);
  12710.  
  12711.  
  12712. void __RPC_STUB IWMWriterNetworkSink_SetMaximumClients_Stub(
  12713.     IRpcStubBuffer *This,
  12714.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12715.     PRPC_MESSAGE _pRpcMessage,
  12716.     DWORD *_pdwStubPhase);
  12717.  
  12718.  
  12719. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_GetMaximumClients_Proxy( 
  12720.     IWMWriterNetworkSink * This,
  12721.     /* [out] */ DWORD *pdwMaxClients);
  12722.  
  12723.  
  12724. void __RPC_STUB IWMWriterNetworkSink_GetMaximumClients_Stub(
  12725.     IRpcStubBuffer *This,
  12726.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12727.     PRPC_MESSAGE _pRpcMessage,
  12728.     DWORD *_pdwStubPhase);
  12729.  
  12730.  
  12731. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_SetNetworkProtocol_Proxy( 
  12732.     IWMWriterNetworkSink * This,
  12733.     /* [in] */ WMT_NET_PROTOCOL protocol);
  12734.  
  12735.  
  12736. void __RPC_STUB IWMWriterNetworkSink_SetNetworkProtocol_Stub(
  12737.     IRpcStubBuffer *This,
  12738.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12739.     PRPC_MESSAGE _pRpcMessage,
  12740.     DWORD *_pdwStubPhase);
  12741.  
  12742.  
  12743. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_GetNetworkProtocol_Proxy( 
  12744.     IWMWriterNetworkSink * This,
  12745.     /* [out] */ WMT_NET_PROTOCOL *pProtocol);
  12746.  
  12747.  
  12748. void __RPC_STUB IWMWriterNetworkSink_GetNetworkProtocol_Stub(
  12749.     IRpcStubBuffer *This,
  12750.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12751.     PRPC_MESSAGE _pRpcMessage,
  12752.     DWORD *_pdwStubPhase);
  12753.  
  12754.  
  12755. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_GetHostURL_Proxy( 
  12756.     IWMWriterNetworkSink * This,
  12757.     /* [out] */ WCHAR *pwszURL,
  12758.     /* [out][in] */ DWORD *pcchURL);
  12759.  
  12760.  
  12761. void __RPC_STUB IWMWriterNetworkSink_GetHostURL_Stub(
  12762.     IRpcStubBuffer *This,
  12763.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12764.     PRPC_MESSAGE _pRpcMessage,
  12765.     DWORD *_pdwStubPhase);
  12766.  
  12767.  
  12768. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_Open_Proxy( 
  12769.     IWMWriterNetworkSink * This,
  12770.     /* [out][in] */ DWORD *pdwPortNum);
  12771.  
  12772.  
  12773. void __RPC_STUB IWMWriterNetworkSink_Open_Stub(
  12774.     IRpcStubBuffer *This,
  12775.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12776.     PRPC_MESSAGE _pRpcMessage,
  12777.     DWORD *_pdwStubPhase);
  12778.  
  12779.  
  12780. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_Disconnect_Proxy( 
  12781.     IWMWriterNetworkSink * This);
  12782.  
  12783.  
  12784. void __RPC_STUB IWMWriterNetworkSink_Disconnect_Stub(
  12785.     IRpcStubBuffer *This,
  12786.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12787.     PRPC_MESSAGE _pRpcMessage,
  12788.     DWORD *_pdwStubPhase);
  12789.  
  12790.  
  12791. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_Close_Proxy( 
  12792.     IWMWriterNetworkSink * This);
  12793.  
  12794.  
  12795. void __RPC_STUB IWMWriterNetworkSink_Close_Stub(
  12796.     IRpcStubBuffer *This,
  12797.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12798.     PRPC_MESSAGE _pRpcMessage,
  12799.     DWORD *_pdwStubPhase);
  12800.  
  12801.  
  12802.  
  12803. #endif     /* __IWMWriterNetworkSink_INTERFACE_DEFINED__ */
  12804.  
  12805.  
  12806. #ifndef __IWMClientConnections_INTERFACE_DEFINED__
  12807. #define __IWMClientConnections_INTERFACE_DEFINED__
  12808.  
  12809. /* interface IWMClientConnections */
  12810. /* [local][unique][helpstring][uuid][object] */ 
  12811.  
  12812.  
  12813. EXTERN_C const IID IID_IWMClientConnections;
  12814.  
  12815. #if defined(__cplusplus) && !defined(CINTERFACE)
  12816.     
  12817.     MIDL_INTERFACE("73C66010-A299-41df-B1F0-CCF03B09C1C6")
  12818.     IWMClientConnections : public IUnknown
  12819.     {
  12820.     public:
  12821.         virtual HRESULT STDMETHODCALLTYPE GetClientCount( 
  12822.             /* [out] */ DWORD *pcClients) = 0;
  12823.         
  12824.         virtual HRESULT STDMETHODCALLTYPE GetClientProperties( 
  12825.             /* [in] */ DWORD dwClientNum,
  12826.             /* [out] */ WM_CLIENT_PROPERTIES *pClientProperties) = 0;
  12827.         
  12828.     };
  12829.     
  12830. #else     /* C style interface */
  12831.  
  12832.     typedef struct IWMClientConnectionsVtbl
  12833.     {
  12834.         BEGIN_INTERFACE
  12835.         
  12836.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  12837.             IWMClientConnections * This,
  12838.             /* [in] */ REFIID riid,
  12839.             /* [iid_is][out] */ void **ppvObject);
  12840.         
  12841.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  12842.             IWMClientConnections * This);
  12843.         
  12844.         ULONG ( STDMETHODCALLTYPE *Release )( 
  12845.             IWMClientConnections * This);
  12846.         
  12847.         HRESULT ( STDMETHODCALLTYPE *GetClientCount )( 
  12848.             IWMClientConnections * This,
  12849.             /* [out] */ DWORD *pcClients);
  12850.         
  12851.         HRESULT ( STDMETHODCALLTYPE *GetClientProperties )( 
  12852.             IWMClientConnections * This,
  12853.             /* [in] */ DWORD dwClientNum,
  12854.             /* [out] */ WM_CLIENT_PROPERTIES *pClientProperties);
  12855.         
  12856.         END_INTERFACE
  12857.     } IWMClientConnectionsVtbl;
  12858.  
  12859.     interface IWMClientConnections
  12860.     {
  12861.         CONST_VTBL struct IWMClientConnectionsVtbl *lpVtbl;
  12862.     };
  12863.  
  12864.     
  12865.  
  12866. #ifdef COBJMACROS
  12867.  
  12868.  
  12869. #define IWMClientConnections_QueryInterface(This,riid,ppvObject)    \
  12870.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  12871.  
  12872. #define IWMClientConnections_AddRef(This)    \
  12873.     (This)->lpVtbl -> AddRef(This)
  12874.  
  12875. #define IWMClientConnections_Release(This)    \
  12876.     (This)->lpVtbl -> Release(This)
  12877.  
  12878.  
  12879. #define IWMClientConnections_GetClientCount(This,pcClients)    \
  12880.     (This)->lpVtbl -> GetClientCount(This,pcClients)
  12881.  
  12882. #define IWMClientConnections_GetClientProperties(This,dwClientNum,pClientProperties)    \
  12883.     (This)->lpVtbl -> GetClientProperties(This,dwClientNum,pClientProperties)
  12884.  
  12885. #endif /* COBJMACROS */
  12886.  
  12887.  
  12888. #endif     /* C style interface */
  12889.  
  12890.  
  12891.  
  12892. HRESULT STDMETHODCALLTYPE IWMClientConnections_GetClientCount_Proxy( 
  12893.     IWMClientConnections * This,
  12894.     /* [out] */ DWORD *pcClients);
  12895.  
  12896.  
  12897. void __RPC_STUB IWMClientConnections_GetClientCount_Stub(
  12898.     IRpcStubBuffer *This,
  12899.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12900.     PRPC_MESSAGE _pRpcMessage,
  12901.     DWORD *_pdwStubPhase);
  12902.  
  12903.  
  12904. HRESULT STDMETHODCALLTYPE IWMClientConnections_GetClientProperties_Proxy( 
  12905.     IWMClientConnections * This,
  12906.     /* [in] */ DWORD dwClientNum,
  12907.     /* [out] */ WM_CLIENT_PROPERTIES *pClientProperties);
  12908.  
  12909.  
  12910. void __RPC_STUB IWMClientConnections_GetClientProperties_Stub(
  12911.     IRpcStubBuffer *This,
  12912.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12913.     PRPC_MESSAGE _pRpcMessage,
  12914.     DWORD *_pdwStubPhase);
  12915.  
  12916.  
  12917.  
  12918. #endif     /* __IWMClientConnections_INTERFACE_DEFINED__ */
  12919.  
  12920.  
  12921. #ifndef __IWMClientConnections2_INTERFACE_DEFINED__
  12922. #define __IWMClientConnections2_INTERFACE_DEFINED__
  12923.  
  12924. /* interface IWMClientConnections2 */
  12925. /* [local][unique][helpstring][uuid][object] */ 
  12926.  
  12927.  
  12928. EXTERN_C const IID IID_IWMClientConnections2;
  12929.  
  12930. #if defined(__cplusplus) && !defined(CINTERFACE)
  12931.     
  12932.     MIDL_INTERFACE("4091571e-4701-4593-bb3d-d5f5f0c74246")
  12933.     IWMClientConnections2 : public IWMClientConnections
  12934.     {
  12935.     public:
  12936.         virtual HRESULT STDMETHODCALLTYPE GetClientInfo( 
  12937.             /* [in] */ DWORD dwClientNum,
  12938.             /* [size_is][out] */ WCHAR *pwszNetworkAddress,
  12939.             /* [out][in] */ DWORD *pcchNetworkAddress,
  12940.             /* [size_is][out] */ WCHAR *pwszPort,
  12941.             /* [out][in] */ DWORD *pcchPort,
  12942.             /* [size_is][out] */ WCHAR *pwszDNSName,
  12943.             /* [out][in] */ DWORD *pcchDNSName) = 0;
  12944.         
  12945.     };
  12946.     
  12947. #else     /* C style interface */
  12948.  
  12949.     typedef struct IWMClientConnections2Vtbl
  12950.     {
  12951.         BEGIN_INTERFACE
  12952.         
  12953.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  12954.             IWMClientConnections2 * This,
  12955.             /* [in] */ REFIID riid,
  12956.             /* [iid_is][out] */ void **ppvObject);
  12957.         
  12958.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  12959.             IWMClientConnections2 * This);
  12960.         
  12961.         ULONG ( STDMETHODCALLTYPE *Release )( 
  12962.             IWMClientConnections2 * This);
  12963.         
  12964.         HRESULT ( STDMETHODCALLTYPE *GetClientCount )( 
  12965.             IWMClientConnections2 * This,
  12966.             /* [out] */ DWORD *pcClients);
  12967.         
  12968.         HRESULT ( STDMETHODCALLTYPE *GetClientProperties )( 
  12969.             IWMClientConnections2 * This,
  12970.             /* [in] */ DWORD dwClientNum,
  12971.             /* [out] */ WM_CLIENT_PROPERTIES *pClientProperties);
  12972.         
  12973.         HRESULT ( STDMETHODCALLTYPE *GetClientInfo )( 
  12974.             IWMClientConnections2 * This,
  12975.             /* [in] */ DWORD dwClientNum,
  12976.             /* [size_is][out] */ WCHAR *pwszNetworkAddress,
  12977.             /* [out][in] */ DWORD *pcchNetworkAddress,
  12978.             /* [size_is][out] */ WCHAR *pwszPort,
  12979.             /* [out][in] */ DWORD *pcchPort,
  12980.             /* [size_is][out] */ WCHAR *pwszDNSName,
  12981.             /* [out][in] */ DWORD *pcchDNSName);
  12982.         
  12983.         END_INTERFACE
  12984.     } IWMClientConnections2Vtbl;
  12985.  
  12986.     interface IWMClientConnections2
  12987.     {
  12988.         CONST_VTBL struct IWMClientConnections2Vtbl *lpVtbl;
  12989.     };
  12990.  
  12991.     
  12992.  
  12993. #ifdef COBJMACROS
  12994.  
  12995.  
  12996. #define IWMClientConnections2_QueryInterface(This,riid,ppvObject)    \
  12997.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  12998.  
  12999. #define IWMClientConnections2_AddRef(This)    \
  13000.     (This)->lpVtbl -> AddRef(This)
  13001.  
  13002. #define IWMClientConnections2_Release(This)    \
  13003.     (This)->lpVtbl -> Release(This)
  13004.  
  13005.  
  13006. #define IWMClientConnections2_GetClientCount(This,pcClients)    \
  13007.     (This)->lpVtbl -> GetClientCount(This,pcClients)
  13008.  
  13009. #define IWMClientConnections2_GetClientProperties(This,dwClientNum,pClientProperties)    \
  13010.     (This)->lpVtbl -> GetClientProperties(This,dwClientNum,pClientProperties)
  13011.  
  13012.  
  13013. #define IWMClientConnections2_GetClientInfo(This,dwClientNum,pwszNetworkAddress,pcchNetworkAddress,pwszPort,pcchPort,pwszDNSName,pcchDNSName)    \
  13014.     (This)->lpVtbl -> GetClientInfo(This,dwClientNum,pwszNetworkAddress,pcchNetworkAddress,pwszPort,pcchPort,pwszDNSName,pcchDNSName)
  13015.  
  13016. #endif /* COBJMACROS */
  13017.  
  13018.  
  13019. #endif     /* C style interface */
  13020.  
  13021.  
  13022.  
  13023. HRESULT STDMETHODCALLTYPE IWMClientConnections2_GetClientInfo_Proxy( 
  13024.     IWMClientConnections2 * This,
  13025.     /* [in] */ DWORD dwClientNum,
  13026.     /* [size_is][out] */ WCHAR *pwszNetworkAddress,
  13027.     /* [out][in] */ DWORD *pcchNetworkAddress,
  13028.     /* [size_is][out] */ WCHAR *pwszPort,
  13029.     /* [out][in] */ DWORD *pcchPort,
  13030.     /* [size_is][out] */ WCHAR *pwszDNSName,
  13031.     /* [out][in] */ DWORD *pcchDNSName);
  13032.  
  13033.  
  13034. void __RPC_STUB IWMClientConnections2_GetClientInfo_Stub(
  13035.     IRpcStubBuffer *This,
  13036.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13037.     PRPC_MESSAGE _pRpcMessage,
  13038.     DWORD *_pdwStubPhase);
  13039.  
  13040.  
  13041.  
  13042. #endif     /* __IWMClientConnections2_INTERFACE_DEFINED__ */
  13043.  
  13044.  
  13045. #ifndef __IWMReaderAdvanced_INTERFACE_DEFINED__
  13046. #define __IWMReaderAdvanced_INTERFACE_DEFINED__
  13047.  
  13048. /* interface IWMReaderAdvanced */
  13049. /* [local][unique][helpstring][uuid][object] */ 
  13050.  
  13051.  
  13052. EXTERN_C const IID IID_IWMReaderAdvanced;
  13053.  
  13054. #if defined(__cplusplus) && !defined(CINTERFACE)
  13055.     
  13056.     MIDL_INTERFACE("96406BEA-2B2B-11d3-B36B-00C04F6108FF")
  13057.     IWMReaderAdvanced : public IUnknown
  13058.     {
  13059.     public:
  13060.         virtual HRESULT STDMETHODCALLTYPE SetUserProvidedClock( 
  13061.             /* [in] */ BOOL fUserClock) = 0;
  13062.         
  13063.         virtual HRESULT STDMETHODCALLTYPE GetUserProvidedClock( 
  13064.             /* [out] */ BOOL *pfUserClock) = 0;
  13065.         
  13066.         virtual HRESULT STDMETHODCALLTYPE DeliverTime( 
  13067.             /* [in] */ QWORD cnsTime) = 0;
  13068.         
  13069.         virtual HRESULT STDMETHODCALLTYPE SetManualStreamSelection( 
  13070.             /* [in] */ BOOL fSelection) = 0;
  13071.         
  13072.         virtual HRESULT STDMETHODCALLTYPE GetManualStreamSelection( 
  13073.             /* [out] */ BOOL *pfSelection) = 0;
  13074.         
  13075.         virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected( 
  13076.             /* [in] */ WORD cStreamCount,
  13077.             /* [in] */ WORD *pwStreamNumbers,
  13078.             /* [in] */ WMT_STREAM_SELECTION *pSelections) = 0;
  13079.         
  13080.         virtual HRESULT STDMETHODCALLTYPE GetStreamSelected( 
  13081.             /* [in] */ WORD wStreamNum,
  13082.             /* [out] */ WMT_STREAM_SELECTION *pSelection) = 0;
  13083.         
  13084.         virtual HRESULT STDMETHODCALLTYPE SetReceiveSelectionCallbacks( 
  13085.             /* [in] */ BOOL fGetCallbacks) = 0;
  13086.         
  13087.         virtual HRESULT STDMETHODCALLTYPE GetReceiveSelectionCallbacks( 
  13088.             /* [out] */ BOOL *pfGetCallbacks) = 0;
  13089.         
  13090.         virtual HRESULT STDMETHODCALLTYPE SetReceiveStreamSamples( 
  13091.             /* [in] */ WORD wStreamNum,
  13092.             /* [in] */ BOOL fReceiveStreamSamples) = 0;
  13093.         
  13094.         virtual HRESULT STDMETHODCALLTYPE GetReceiveStreamSamples( 
  13095.             /* [in] */ WORD wStreamNum,
  13096.             /* [out] */ BOOL *pfReceiveStreamSamples) = 0;
  13097.         
  13098.         virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput( 
  13099.             /* [in] */ DWORD dwOutputNum,
  13100.             /* [in] */ BOOL fAllocate) = 0;
  13101.         
  13102.         virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput( 
  13103.             /* [in] */ DWORD dwOutputNum,
  13104.             /* [out] */ BOOL *pfAllocate) = 0;
  13105.         
  13106.         virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream( 
  13107.             /* [in] */ WORD wStreamNum,
  13108.             /* [in] */ BOOL fAllocate) = 0;
  13109.         
  13110.         virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream( 
  13111.             /* [in] */ WORD dwSreamNum,
  13112.             /* [out] */ BOOL *pfAllocate) = 0;
  13113.         
  13114.         virtual HRESULT STDMETHODCALLTYPE GetStatistics( 
  13115.             /* [out][in] */ WM_READER_STATISTICS *pStatistics) = 0;
  13116.         
  13117.         virtual HRESULT STDMETHODCALLTYPE SetClientInfo( 
  13118.             /* [in] */ WM_READER_CLIENTINFO *pClientInfo) = 0;
  13119.         
  13120.         virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize( 
  13121.             /* [in] */ DWORD dwOutput,
  13122.             /* [out] */ DWORD *pcbMax) = 0;
  13123.         
  13124.         virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize( 
  13125.             /* [in] */ WORD wStream,
  13126.             /* [out] */ DWORD *pcbMax) = 0;
  13127.         
  13128.         virtual HRESULT STDMETHODCALLTYPE NotifyLateDelivery( 
  13129.             QWORD cnsLateness) = 0;
  13130.         
  13131.     };
  13132.     
  13133. #else     /* C style interface */
  13134.  
  13135.     typedef struct IWMReaderAdvancedVtbl
  13136.     {
  13137.         BEGIN_INTERFACE
  13138.         
  13139.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  13140.             IWMReaderAdvanced * This,
  13141.             /* [in] */ REFIID riid,
  13142.             /* [iid_is][out] */ void **ppvObject);
  13143.         
  13144.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  13145.             IWMReaderAdvanced * This);
  13146.         
  13147.         ULONG ( STDMETHODCALLTYPE *Release )( 
  13148.             IWMReaderAdvanced * This);
  13149.         
  13150.         HRESULT ( STDMETHODCALLTYPE *SetUserProvidedClock )( 
  13151.             IWMReaderAdvanced * This,
  13152.             /* [in] */ BOOL fUserClock);
  13153.         
  13154.         HRESULT ( STDMETHODCALLTYPE *GetUserProvidedClock )( 
  13155.             IWMReaderAdvanced * This,
  13156.             /* [out] */ BOOL *pfUserClock);
  13157.         
  13158.         HRESULT ( STDMETHODCALLTYPE *DeliverTime )( 
  13159.             IWMReaderAdvanced * This,
  13160.             /* [in] */ QWORD cnsTime);
  13161.         
  13162.         HRESULT ( STDMETHODCALLTYPE *SetManualStreamSelection )( 
  13163.             IWMReaderAdvanced * This,
  13164.             /* [in] */ BOOL fSelection);
  13165.         
  13166.         HRESULT ( STDMETHODCALLTYPE *GetManualStreamSelection )( 
  13167.             IWMReaderAdvanced * This,
  13168.             /* [out] */ BOOL *pfSelection);
  13169.         
  13170.         HRESULT ( STDMETHODCALLTYPE *SetStreamsSelected )( 
  13171.             IWMReaderAdvanced * This,
  13172.             /* [in] */ WORD cStreamCount,
  13173.             /* [in] */ WORD *pwStreamNumbers,
  13174.             /* [in] */ WMT_STREAM_SELECTION *pSelections);
  13175.         
  13176.         HRESULT ( STDMETHODCALLTYPE *GetStreamSelected )( 
  13177.             IWMReaderAdvanced * This,
  13178.             /* [in] */ WORD wStreamNum,
  13179.             /* [out] */ WMT_STREAM_SELECTION *pSelection);
  13180.         
  13181.         HRESULT ( STDMETHODCALLTYPE *SetReceiveSelectionCallbacks )( 
  13182.             IWMReaderAdvanced * This,
  13183.             /* [in] */ BOOL fGetCallbacks);
  13184.         
  13185.         HRESULT ( STDMETHODCALLTYPE *GetReceiveSelectionCallbacks )( 
  13186.             IWMReaderAdvanced * This,
  13187.             /* [out] */ BOOL *pfGetCallbacks);
  13188.         
  13189.         HRESULT ( STDMETHODCALLTYPE *SetReceiveStreamSamples )( 
  13190.             IWMReaderAdvanced * This,
  13191.             /* [in] */ WORD wStreamNum,
  13192.             /* [in] */ BOOL fReceiveStreamSamples);
  13193.         
  13194.         HRESULT ( STDMETHODCALLTYPE *GetReceiveStreamSamples )( 
  13195.             IWMReaderAdvanced * This,
  13196.             /* [in] */ WORD wStreamNum,
  13197.             /* [out] */ BOOL *pfReceiveStreamSamples);
  13198.         
  13199.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForOutput )( 
  13200.             IWMReaderAdvanced * This,
  13201.             /* [in] */ DWORD dwOutputNum,
  13202.             /* [in] */ BOOL fAllocate);
  13203.         
  13204.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForOutput )( 
  13205.             IWMReaderAdvanced * This,
  13206.             /* [in] */ DWORD dwOutputNum,
  13207.             /* [out] */ BOOL *pfAllocate);
  13208.         
  13209.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForStream )( 
  13210.             IWMReaderAdvanced * This,
  13211.             /* [in] */ WORD wStreamNum,
  13212.             /* [in] */ BOOL fAllocate);
  13213.         
  13214.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForStream )( 
  13215.             IWMReaderAdvanced * This,
  13216.             /* [in] */ WORD dwSreamNum,
  13217.             /* [out] */ BOOL *pfAllocate);
  13218.         
  13219.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  13220.             IWMReaderAdvanced * This,
  13221.             /* [out][in] */ WM_READER_STATISTICS *pStatistics);
  13222.         
  13223.         HRESULT ( STDMETHODCALLTYPE *SetClientInfo )( 
  13224.             IWMReaderAdvanced * This,
  13225.             /* [in] */ WM_READER_CLIENTINFO *pClientInfo);
  13226.         
  13227.         HRESULT ( STDMETHODCALLTYPE *GetMaxOutputSampleSize )( 
  13228.             IWMReaderAdvanced * This,
  13229.             /* [in] */ DWORD dwOutput,
  13230.             /* [out] */ DWORD *pcbMax);
  13231.         
  13232.         HRESULT ( STDMETHODCALLTYPE *GetMaxStreamSampleSize )( 
  13233.             IWMReaderAdvanced * This,
  13234.             /* [in] */ WORD wStream,
  13235.             /* [out] */ DWORD *pcbMax);
  13236.         
  13237.         HRESULT ( STDMETHODCALLTYPE *NotifyLateDelivery )( 
  13238.             IWMReaderAdvanced * This,
  13239.             QWORD cnsLateness);
  13240.         
  13241.         END_INTERFACE
  13242.     } IWMReaderAdvancedVtbl;
  13243.  
  13244.     interface IWMReaderAdvanced
  13245.     {
  13246.         CONST_VTBL struct IWMReaderAdvancedVtbl *lpVtbl;
  13247.     };
  13248.  
  13249.     
  13250.  
  13251. #ifdef COBJMACROS
  13252.  
  13253.  
  13254. #define IWMReaderAdvanced_QueryInterface(This,riid,ppvObject)    \
  13255.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  13256.  
  13257. #define IWMReaderAdvanced_AddRef(This)    \
  13258.     (This)->lpVtbl -> AddRef(This)
  13259.  
  13260. #define IWMReaderAdvanced_Release(This)    \
  13261.     (This)->lpVtbl -> Release(This)
  13262.  
  13263.  
  13264. #define IWMReaderAdvanced_SetUserProvidedClock(This,fUserClock)    \
  13265.     (This)->lpVtbl -> SetUserProvidedClock(This,fUserClock)
  13266.  
  13267. #define IWMReaderAdvanced_GetUserProvidedClock(This,pfUserClock)    \
  13268.     (This)->lpVtbl -> GetUserProvidedClock(This,pfUserClock)
  13269.  
  13270. #define IWMReaderAdvanced_DeliverTime(This,cnsTime)    \
  13271.     (This)->lpVtbl -> DeliverTime(This,cnsTime)
  13272.  
  13273. #define IWMReaderAdvanced_SetManualStreamSelection(This,fSelection)    \
  13274.     (This)->lpVtbl -> SetManualStreamSelection(This,fSelection)
  13275.  
  13276. #define IWMReaderAdvanced_GetManualStreamSelection(This,pfSelection)    \
  13277.     (This)->lpVtbl -> GetManualStreamSelection(This,pfSelection)
  13278.  
  13279. #define IWMReaderAdvanced_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)    \
  13280.     (This)->lpVtbl -> SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  13281.  
  13282. #define IWMReaderAdvanced_GetStreamSelected(This,wStreamNum,pSelection)    \
  13283.     (This)->lpVtbl -> GetStreamSelected(This,wStreamNum,pSelection)
  13284.  
  13285. #define IWMReaderAdvanced_SetReceiveSelectionCallbacks(This,fGetCallbacks)    \
  13286.     (This)->lpVtbl -> SetReceiveSelectionCallbacks(This,fGetCallbacks)
  13287.  
  13288. #define IWMReaderAdvanced_GetReceiveSelectionCallbacks(This,pfGetCallbacks)    \
  13289.     (This)->lpVtbl -> GetReceiveSelectionCallbacks(This,pfGetCallbacks)
  13290.  
  13291. #define IWMReaderAdvanced_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)    \
  13292.     (This)->lpVtbl -> SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
  13293.  
  13294. #define IWMReaderAdvanced_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)    \
  13295.     (This)->lpVtbl -> GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
  13296.  
  13297. #define IWMReaderAdvanced_SetAllocateForOutput(This,dwOutputNum,fAllocate)    \
  13298.     (This)->lpVtbl -> SetAllocateForOutput(This,dwOutputNum,fAllocate)
  13299.  
  13300. #define IWMReaderAdvanced_GetAllocateForOutput(This,dwOutputNum,pfAllocate)    \
  13301.     (This)->lpVtbl -> GetAllocateForOutput(This,dwOutputNum,pfAllocate)
  13302.  
  13303. #define IWMReaderAdvanced_SetAllocateForStream(This,wStreamNum,fAllocate)    \
  13304.     (This)->lpVtbl -> SetAllocateForStream(This,wStreamNum,fAllocate)
  13305.  
  13306. #define IWMReaderAdvanced_GetAllocateForStream(This,dwSreamNum,pfAllocate)    \
  13307.     (This)->lpVtbl -> GetAllocateForStream(This,dwSreamNum,pfAllocate)
  13308.  
  13309. #define IWMReaderAdvanced_GetStatistics(This,pStatistics)    \
  13310.     (This)->lpVtbl -> GetStatistics(This,pStatistics)
  13311.  
  13312. #define IWMReaderAdvanced_SetClientInfo(This,pClientInfo)    \
  13313.     (This)->lpVtbl -> SetClientInfo(This,pClientInfo)
  13314.  
  13315. #define IWMReaderAdvanced_GetMaxOutputSampleSize(This,dwOutput,pcbMax)    \
  13316.     (This)->lpVtbl -> GetMaxOutputSampleSize(This,dwOutput,pcbMax)
  13317.  
  13318. #define IWMReaderAdvanced_GetMaxStreamSampleSize(This,wStream,pcbMax)    \
  13319.     (This)->lpVtbl -> GetMaxStreamSampleSize(This,wStream,pcbMax)
  13320.  
  13321. #define IWMReaderAdvanced_NotifyLateDelivery(This,cnsLateness)    \
  13322.     (This)->lpVtbl -> NotifyLateDelivery(This,cnsLateness)
  13323.  
  13324. #endif /* COBJMACROS */
  13325.  
  13326.  
  13327. #endif     /* C style interface */
  13328.  
  13329.  
  13330.  
  13331. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetUserProvidedClock_Proxy( 
  13332.     IWMReaderAdvanced * This,
  13333.     /* [in] */ BOOL fUserClock);
  13334.  
  13335.  
  13336. void __RPC_STUB IWMReaderAdvanced_SetUserProvidedClock_Stub(
  13337.     IRpcStubBuffer *This,
  13338.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13339.     PRPC_MESSAGE _pRpcMessage,
  13340.     DWORD *_pdwStubPhase);
  13341.  
  13342.  
  13343. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetUserProvidedClock_Proxy( 
  13344.     IWMReaderAdvanced * This,
  13345.     /* [out] */ BOOL *pfUserClock);
  13346.  
  13347.  
  13348. void __RPC_STUB IWMReaderAdvanced_GetUserProvidedClock_Stub(
  13349.     IRpcStubBuffer *This,
  13350.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13351.     PRPC_MESSAGE _pRpcMessage,
  13352.     DWORD *_pdwStubPhase);
  13353.  
  13354.  
  13355. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_DeliverTime_Proxy( 
  13356.     IWMReaderAdvanced * This,
  13357.     /* [in] */ QWORD cnsTime);
  13358.  
  13359.  
  13360. void __RPC_STUB IWMReaderAdvanced_DeliverTime_Stub(
  13361.     IRpcStubBuffer *This,
  13362.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13363.     PRPC_MESSAGE _pRpcMessage,
  13364.     DWORD *_pdwStubPhase);
  13365.  
  13366.  
  13367. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetManualStreamSelection_Proxy( 
  13368.     IWMReaderAdvanced * This,
  13369.     /* [in] */ BOOL fSelection);
  13370.  
  13371.  
  13372. void __RPC_STUB IWMReaderAdvanced_SetManualStreamSelection_Stub(
  13373.     IRpcStubBuffer *This,
  13374.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13375.     PRPC_MESSAGE _pRpcMessage,
  13376.     DWORD *_pdwStubPhase);
  13377.  
  13378.  
  13379. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetManualStreamSelection_Proxy( 
  13380.     IWMReaderAdvanced * This,
  13381.     /* [out] */ BOOL *pfSelection);
  13382.  
  13383.  
  13384. void __RPC_STUB IWMReaderAdvanced_GetManualStreamSelection_Stub(
  13385.     IRpcStubBuffer *This,
  13386.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13387.     PRPC_MESSAGE _pRpcMessage,
  13388.     DWORD *_pdwStubPhase);
  13389.  
  13390.  
  13391. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetStreamsSelected_Proxy( 
  13392.     IWMReaderAdvanced * This,
  13393.     /* [in] */ WORD cStreamCount,
  13394.     /* [in] */ WORD *pwStreamNumbers,
  13395.     /* [in] */ WMT_STREAM_SELECTION *pSelections);
  13396.  
  13397.  
  13398. void __RPC_STUB IWMReaderAdvanced_SetStreamsSelected_Stub(
  13399.     IRpcStubBuffer *This,
  13400.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13401.     PRPC_MESSAGE _pRpcMessage,
  13402.     DWORD *_pdwStubPhase);
  13403.  
  13404.  
  13405. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetStreamSelected_Proxy( 
  13406.     IWMReaderAdvanced * This,
  13407.     /* [in] */ WORD wStreamNum,
  13408.     /* [out] */ WMT_STREAM_SELECTION *pSelection);
  13409.  
  13410.  
  13411. void __RPC_STUB IWMReaderAdvanced_GetStreamSelected_Stub(
  13412.     IRpcStubBuffer *This,
  13413.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13414.     PRPC_MESSAGE _pRpcMessage,
  13415.     DWORD *_pdwStubPhase);
  13416.  
  13417.  
  13418. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetReceiveSelectionCallbacks_Proxy( 
  13419.     IWMReaderAdvanced * This,
  13420.     /* [in] */ BOOL fGetCallbacks);
  13421.  
  13422.  
  13423. void __RPC_STUB IWMReaderAdvanced_SetReceiveSelectionCallbacks_Stub(
  13424.     IRpcStubBuffer *This,
  13425.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13426.     PRPC_MESSAGE _pRpcMessage,
  13427.     DWORD *_pdwStubPhase);
  13428.  
  13429.  
  13430. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetReceiveSelectionCallbacks_Proxy( 
  13431.     IWMReaderAdvanced * This,
  13432.     /* [out] */ BOOL *pfGetCallbacks);
  13433.  
  13434.  
  13435. void __RPC_STUB IWMReaderAdvanced_GetReceiveSelectionCallbacks_Stub(
  13436.     IRpcStubBuffer *This,
  13437.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13438.     PRPC_MESSAGE _pRpcMessage,
  13439.     DWORD *_pdwStubPhase);
  13440.  
  13441.  
  13442. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetReceiveStreamSamples_Proxy( 
  13443.     IWMReaderAdvanced * This,
  13444.     /* [in] */ WORD wStreamNum,
  13445.     /* [in] */ BOOL fReceiveStreamSamples);
  13446.  
  13447.  
  13448. void __RPC_STUB IWMReaderAdvanced_SetReceiveStreamSamples_Stub(
  13449.     IRpcStubBuffer *This,
  13450.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13451.     PRPC_MESSAGE _pRpcMessage,
  13452.     DWORD *_pdwStubPhase);
  13453.  
  13454.  
  13455. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetReceiveStreamSamples_Proxy( 
  13456.     IWMReaderAdvanced * This,
  13457.     /* [in] */ WORD wStreamNum,
  13458.     /* [out] */ BOOL *pfReceiveStreamSamples);
  13459.  
  13460.  
  13461. void __RPC_STUB IWMReaderAdvanced_GetReceiveStreamSamples_Stub(
  13462.     IRpcStubBuffer *This,
  13463.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13464.     PRPC_MESSAGE _pRpcMessage,
  13465.     DWORD *_pdwStubPhase);
  13466.  
  13467.  
  13468. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetAllocateForOutput_Proxy( 
  13469.     IWMReaderAdvanced * This,
  13470.     /* [in] */ DWORD dwOutputNum,
  13471.     /* [in] */ BOOL fAllocate);
  13472.  
  13473.  
  13474. void __RPC_STUB IWMReaderAdvanced_SetAllocateForOutput_Stub(
  13475.     IRpcStubBuffer *This,
  13476.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13477.     PRPC_MESSAGE _pRpcMessage,
  13478.     DWORD *_pdwStubPhase);
  13479.  
  13480.  
  13481. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetAllocateForOutput_Proxy( 
  13482.     IWMReaderAdvanced * This,
  13483.     /* [in] */ DWORD dwOutputNum,
  13484.     /* [out] */ BOOL *pfAllocate);
  13485.  
  13486.  
  13487. void __RPC_STUB IWMReaderAdvanced_GetAllocateForOutput_Stub(
  13488.     IRpcStubBuffer *This,
  13489.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13490.     PRPC_MESSAGE _pRpcMessage,
  13491.     DWORD *_pdwStubPhase);
  13492.  
  13493.  
  13494. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetAllocateForStream_Proxy( 
  13495.     IWMReaderAdvanced * This,
  13496.     /* [in] */ WORD wStreamNum,
  13497.     /* [in] */ BOOL fAllocate);
  13498.  
  13499.  
  13500. void __RPC_STUB IWMReaderAdvanced_SetAllocateForStream_Stub(
  13501.     IRpcStubBuffer *This,
  13502.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13503.     PRPC_MESSAGE _pRpcMessage,
  13504.     DWORD *_pdwStubPhase);
  13505.  
  13506.  
  13507. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetAllocateForStream_Proxy( 
  13508.     IWMReaderAdvanced * This,
  13509.     /* [in] */ WORD dwSreamNum,
  13510.     /* [out] */ BOOL *pfAllocate);
  13511.  
  13512.  
  13513. void __RPC_STUB IWMReaderAdvanced_GetAllocateForStream_Stub(
  13514.     IRpcStubBuffer *This,
  13515.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13516.     PRPC_MESSAGE _pRpcMessage,
  13517.     DWORD *_pdwStubPhase);
  13518.  
  13519.  
  13520. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetStatistics_Proxy( 
  13521.     IWMReaderAdvanced * This,
  13522.     /* [out][in] */ WM_READER_STATISTICS *pStatistics);
  13523.  
  13524.  
  13525. void __RPC_STUB IWMReaderAdvanced_GetStatistics_Stub(
  13526.     IRpcStubBuffer *This,
  13527.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13528.     PRPC_MESSAGE _pRpcMessage,
  13529.     DWORD *_pdwStubPhase);
  13530.  
  13531.  
  13532. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetClientInfo_Proxy( 
  13533.     IWMReaderAdvanced * This,
  13534.     /* [in] */ WM_READER_CLIENTINFO *pClientInfo);
  13535.  
  13536.  
  13537. void __RPC_STUB IWMReaderAdvanced_SetClientInfo_Stub(
  13538.     IRpcStubBuffer *This,
  13539.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13540.     PRPC_MESSAGE _pRpcMessage,
  13541.     DWORD *_pdwStubPhase);
  13542.  
  13543.  
  13544. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetMaxOutputSampleSize_Proxy( 
  13545.     IWMReaderAdvanced * This,
  13546.     /* [in] */ DWORD dwOutput,
  13547.     /* [out] */ DWORD *pcbMax);
  13548.  
  13549.  
  13550. void __RPC_STUB IWMReaderAdvanced_GetMaxOutputSampleSize_Stub(
  13551.     IRpcStubBuffer *This,
  13552.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13553.     PRPC_MESSAGE _pRpcMessage,
  13554.     DWORD *_pdwStubPhase);
  13555.  
  13556.  
  13557. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetMaxStreamSampleSize_Proxy( 
  13558.     IWMReaderAdvanced * This,
  13559.     /* [in] */ WORD wStream,
  13560.     /* [out] */ DWORD *pcbMax);
  13561.  
  13562.  
  13563. void __RPC_STUB IWMReaderAdvanced_GetMaxStreamSampleSize_Stub(
  13564.     IRpcStubBuffer *This,
  13565.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13566.     PRPC_MESSAGE _pRpcMessage,
  13567.     DWORD *_pdwStubPhase);
  13568.  
  13569.  
  13570. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_NotifyLateDelivery_Proxy( 
  13571.     IWMReaderAdvanced * This,
  13572.     QWORD cnsLateness);
  13573.  
  13574.  
  13575. void __RPC_STUB IWMReaderAdvanced_NotifyLateDelivery_Stub(
  13576.     IRpcStubBuffer *This,
  13577.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13578.     PRPC_MESSAGE _pRpcMessage,
  13579.     DWORD *_pdwStubPhase);
  13580.  
  13581.  
  13582.  
  13583. #endif     /* __IWMReaderAdvanced_INTERFACE_DEFINED__ */
  13584.  
  13585.  
  13586. #ifndef __IWMReaderAdvanced2_INTERFACE_DEFINED__
  13587. #define __IWMReaderAdvanced2_INTERFACE_DEFINED__
  13588.  
  13589. /* interface IWMReaderAdvanced2 */
  13590. /* [local][unique][helpstring][uuid][object] */ 
  13591.  
  13592.  
  13593. EXTERN_C const IID IID_IWMReaderAdvanced2;
  13594.  
  13595. #if defined(__cplusplus) && !defined(CINTERFACE)
  13596.     
  13597.     MIDL_INTERFACE("ae14a945-b90c-4d0d-9127-80d665f7d73e")
  13598.     IWMReaderAdvanced2 : public IWMReaderAdvanced
  13599.     {
  13600.     public:
  13601.         virtual HRESULT STDMETHODCALLTYPE SetPlayMode( 
  13602.             /* [in] */ WMT_PLAY_MODE Mode) = 0;
  13603.         
  13604.         virtual HRESULT STDMETHODCALLTYPE GetPlayMode( 
  13605.             /* [out] */ WMT_PLAY_MODE *pMode) = 0;
  13606.         
  13607.         virtual HRESULT STDMETHODCALLTYPE GetBufferProgress( 
  13608.             /* [out] */ DWORD *pdwPercent,
  13609.             /* [out] */ QWORD *pcnsBuffering) = 0;
  13610.         
  13611.         virtual HRESULT STDMETHODCALLTYPE GetDownloadProgress( 
  13612.             /* [out] */ DWORD *pdwPercent,
  13613.             /* [out] */ QWORD *pqwBytesDownloaded,
  13614.             /* [out] */ QWORD *pcnsDownload) = 0;
  13615.         
  13616.         virtual HRESULT STDMETHODCALLTYPE GetSaveAsProgress( 
  13617.             /* [out] */ DWORD *pdwPercent) = 0;
  13618.         
  13619.         virtual HRESULT STDMETHODCALLTYPE SaveFileAs( 
  13620.             /* [in] */ const WCHAR *pwszFilename) = 0;
  13621.         
  13622.         virtual HRESULT STDMETHODCALLTYPE GetProtocolName( 
  13623.             /* [size_is][out] */ WCHAR *pwszProtocol,
  13624.             /* [out][in] */ DWORD *pcchProtocol) = 0;
  13625.         
  13626.         virtual HRESULT STDMETHODCALLTYPE StartAtMarker( 
  13627.             /* [in] */ WORD wMarkerIndex,
  13628.             /* [in] */ QWORD cnsDuration,
  13629.             /* [in] */ float fRate,
  13630.             /* [in] */ void *pvContext) = 0;
  13631.         
  13632.         virtual HRESULT STDMETHODCALLTYPE GetOutputSetting( 
  13633.             /* [in] */ DWORD dwOutputNum,
  13634.             /* [in] */ LPCWSTR pszName,
  13635.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  13636.             /* [size_is][out] */ BYTE *pValue,
  13637.             /* [out][in] */ WORD *pcbLength) = 0;
  13638.         
  13639.         virtual HRESULT STDMETHODCALLTYPE SetOutputSetting( 
  13640.             /* [in] */ DWORD dwOutputNum,
  13641.             /* [in] */ LPCWSTR pszName,
  13642.             /* [in] */ WMT_ATTR_DATATYPE Type,
  13643.             /* [size_is][in] */ const BYTE *pValue,
  13644.             /* [in] */ WORD cbLength) = 0;
  13645.         
  13646.         virtual HRESULT STDMETHODCALLTYPE Preroll( 
  13647.             /* [in] */ QWORD cnsStart,
  13648.             /* [in] */ QWORD cnsDuration,
  13649.             /* [in] */ float fRate) = 0;
  13650.         
  13651.         virtual HRESULT STDMETHODCALLTYPE SetLogClientID( 
  13652.             /* [in] */ BOOL fLogClientID) = 0;
  13653.         
  13654.         virtual HRESULT STDMETHODCALLTYPE GetLogClientID( 
  13655.             /* [out] */ BOOL *pfLogClientID) = 0;
  13656.         
  13657.         virtual HRESULT STDMETHODCALLTYPE StopBuffering( void) = 0;
  13658.         
  13659.         virtual HRESULT STDMETHODCALLTYPE OpenStream( 
  13660.             /* [in] */ IStream *pStream,
  13661.             /* [in] */ IWMReaderCallback *pCallback,
  13662.             /* [in] */ void *pvContext) = 0;
  13663.         
  13664.     };
  13665.     
  13666. #else     /* C style interface */
  13667.  
  13668.     typedef struct IWMReaderAdvanced2Vtbl
  13669.     {
  13670.         BEGIN_INTERFACE
  13671.         
  13672.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  13673.             IWMReaderAdvanced2 * This,
  13674.             /* [in] */ REFIID riid,
  13675.             /* [iid_is][out] */ void **ppvObject);
  13676.         
  13677.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  13678.             IWMReaderAdvanced2 * This);
  13679.         
  13680.         ULONG ( STDMETHODCALLTYPE *Release )( 
  13681.             IWMReaderAdvanced2 * This);
  13682.         
  13683.         HRESULT ( STDMETHODCALLTYPE *SetUserProvidedClock )( 
  13684.             IWMReaderAdvanced2 * This,
  13685.             /* [in] */ BOOL fUserClock);
  13686.         
  13687.         HRESULT ( STDMETHODCALLTYPE *GetUserProvidedClock )( 
  13688.             IWMReaderAdvanced2 * This,
  13689.             /* [out] */ BOOL *pfUserClock);
  13690.         
  13691.         HRESULT ( STDMETHODCALLTYPE *DeliverTime )( 
  13692.             IWMReaderAdvanced2 * This,
  13693.             /* [in] */ QWORD cnsTime);
  13694.         
  13695.         HRESULT ( STDMETHODCALLTYPE *SetManualStreamSelection )( 
  13696.             IWMReaderAdvanced2 * This,
  13697.             /* [in] */ BOOL fSelection);
  13698.         
  13699.         HRESULT ( STDMETHODCALLTYPE *GetManualStreamSelection )( 
  13700.             IWMReaderAdvanced2 * This,
  13701.             /* [out] */ BOOL *pfSelection);
  13702.         
  13703.         HRESULT ( STDMETHODCALLTYPE *SetStreamsSelected )( 
  13704.             IWMReaderAdvanced2 * This,
  13705.             /* [in] */ WORD cStreamCount,
  13706.             /* [in] */ WORD *pwStreamNumbers,
  13707.             /* [in] */ WMT_STREAM_SELECTION *pSelections);
  13708.         
  13709.         HRESULT ( STDMETHODCALLTYPE *GetStreamSelected )( 
  13710.             IWMReaderAdvanced2 * This,
  13711.             /* [in] */ WORD wStreamNum,
  13712.             /* [out] */ WMT_STREAM_SELECTION *pSelection);
  13713.         
  13714.         HRESULT ( STDMETHODCALLTYPE *SetReceiveSelectionCallbacks )( 
  13715.             IWMReaderAdvanced2 * This,
  13716.             /* [in] */ BOOL fGetCallbacks);
  13717.         
  13718.         HRESULT ( STDMETHODCALLTYPE *GetReceiveSelectionCallbacks )( 
  13719.             IWMReaderAdvanced2 * This,
  13720.             /* [out] */ BOOL *pfGetCallbacks);
  13721.         
  13722.         HRESULT ( STDMETHODCALLTYPE *SetReceiveStreamSamples )( 
  13723.             IWMReaderAdvanced2 * This,
  13724.             /* [in] */ WORD wStreamNum,
  13725.             /* [in] */ BOOL fReceiveStreamSamples);
  13726.         
  13727.         HRESULT ( STDMETHODCALLTYPE *GetReceiveStreamSamples )( 
  13728.             IWMReaderAdvanced2 * This,
  13729.             /* [in] */ WORD wStreamNum,
  13730.             /* [out] */ BOOL *pfReceiveStreamSamples);
  13731.         
  13732.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForOutput )( 
  13733.             IWMReaderAdvanced2 * This,
  13734.             /* [in] */ DWORD dwOutputNum,
  13735.             /* [in] */ BOOL fAllocate);
  13736.         
  13737.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForOutput )( 
  13738.             IWMReaderAdvanced2 * This,
  13739.             /* [in] */ DWORD dwOutputNum,
  13740.             /* [out] */ BOOL *pfAllocate);
  13741.         
  13742.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForStream )( 
  13743.             IWMReaderAdvanced2 * This,
  13744.             /* [in] */ WORD wStreamNum,
  13745.             /* [in] */ BOOL fAllocate);
  13746.         
  13747.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForStream )( 
  13748.             IWMReaderAdvanced2 * This,
  13749.             /* [in] */ WORD dwSreamNum,
  13750.             /* [out] */ BOOL *pfAllocate);
  13751.         
  13752.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  13753.             IWMReaderAdvanced2 * This,
  13754.             /* [out][in] */ WM_READER_STATISTICS *pStatistics);
  13755.         
  13756.         HRESULT ( STDMETHODCALLTYPE *SetClientInfo )( 
  13757.             IWMReaderAdvanced2 * This,
  13758.             /* [in] */ WM_READER_CLIENTINFO *pClientInfo);
  13759.         
  13760.         HRESULT ( STDMETHODCALLTYPE *GetMaxOutputSampleSize )( 
  13761.             IWMReaderAdvanced2 * This,
  13762.             /* [in] */ DWORD dwOutput,
  13763.             /* [out] */ DWORD *pcbMax);
  13764.         
  13765.         HRESULT ( STDMETHODCALLTYPE *GetMaxStreamSampleSize )( 
  13766.             IWMReaderAdvanced2 * This,
  13767.             /* [in] */ WORD wStream,
  13768.             /* [out] */ DWORD *pcbMax);
  13769.         
  13770.         HRESULT ( STDMETHODCALLTYPE *NotifyLateDelivery )( 
  13771.             IWMReaderAdvanced2 * This,
  13772.             QWORD cnsLateness);
  13773.         
  13774.         HRESULT ( STDMETHODCALLTYPE *SetPlayMode )( 
  13775.             IWMReaderAdvanced2 * This,
  13776.             /* [in] */ WMT_PLAY_MODE Mode);
  13777.         
  13778.         HRESULT ( STDMETHODCALLTYPE *GetPlayMode )( 
  13779.             IWMReaderAdvanced2 * This,
  13780.             /* [out] */ WMT_PLAY_MODE *pMode);
  13781.         
  13782.         HRESULT ( STDMETHODCALLTYPE *GetBufferProgress )( 
  13783.             IWMReaderAdvanced2 * This,
  13784.             /* [out] */ DWORD *pdwPercent,
  13785.             /* [out] */ QWORD *pcnsBuffering);
  13786.         
  13787.         HRESULT ( STDMETHODCALLTYPE *GetDownloadProgress )( 
  13788.             IWMReaderAdvanced2 * This,
  13789.             /* [out] */ DWORD *pdwPercent,
  13790.             /* [out] */ QWORD *pqwBytesDownloaded,
  13791.             /* [out] */ QWORD *pcnsDownload);
  13792.         
  13793.         HRESULT ( STDMETHODCALLTYPE *GetSaveAsProgress )( 
  13794.             IWMReaderAdvanced2 * This,
  13795.             /* [out] */ DWORD *pdwPercent);
  13796.         
  13797.         HRESULT ( STDMETHODCALLTYPE *SaveFileAs )( 
  13798.             IWMReaderAdvanced2 * This,
  13799.             /* [in] */ const WCHAR *pwszFilename);
  13800.         
  13801.         HRESULT ( STDMETHODCALLTYPE *GetProtocolName )( 
  13802.             IWMReaderAdvanced2 * This,
  13803.             /* [size_is][out] */ WCHAR *pwszProtocol,
  13804.             /* [out][in] */ DWORD *pcchProtocol);
  13805.         
  13806.         HRESULT ( STDMETHODCALLTYPE *StartAtMarker )( 
  13807.             IWMReaderAdvanced2 * This,
  13808.             /* [in] */ WORD wMarkerIndex,
  13809.             /* [in] */ QWORD cnsDuration,
  13810.             /* [in] */ float fRate,
  13811.             /* [in] */ void *pvContext);
  13812.         
  13813.         HRESULT ( STDMETHODCALLTYPE *GetOutputSetting )( 
  13814.             IWMReaderAdvanced2 * This,
  13815.             /* [in] */ DWORD dwOutputNum,
  13816.             /* [in] */ LPCWSTR pszName,
  13817.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  13818.             /* [size_is][out] */ BYTE *pValue,
  13819.             /* [out][in] */ WORD *pcbLength);
  13820.         
  13821.         HRESULT ( STDMETHODCALLTYPE *SetOutputSetting )( 
  13822.             IWMReaderAdvanced2 * This,
  13823.             /* [in] */ DWORD dwOutputNum,
  13824.             /* [in] */ LPCWSTR pszName,
  13825.             /* [in] */ WMT_ATTR_DATATYPE Type,
  13826.             /* [size_is][in] */ const BYTE *pValue,
  13827.             /* [in] */ WORD cbLength);
  13828.         
  13829.         HRESULT ( STDMETHODCALLTYPE *Preroll )( 
  13830.             IWMReaderAdvanced2 * This,
  13831.             /* [in] */ QWORD cnsStart,
  13832.             /* [in] */ QWORD cnsDuration,
  13833.             /* [in] */ float fRate);
  13834.         
  13835.         HRESULT ( STDMETHODCALLTYPE *SetLogClientID )( 
  13836.             IWMReaderAdvanced2 * This,
  13837.             /* [in] */ BOOL fLogClientID);
  13838.         
  13839.         HRESULT ( STDMETHODCALLTYPE *GetLogClientID )( 
  13840.             IWMReaderAdvanced2 * This,
  13841.             /* [out] */ BOOL *pfLogClientID);
  13842.         
  13843.         HRESULT ( STDMETHODCALLTYPE *StopBuffering )( 
  13844.             IWMReaderAdvanced2 * This);
  13845.         
  13846.         HRESULT ( STDMETHODCALLTYPE *OpenStream )( 
  13847.             IWMReaderAdvanced2 * This,
  13848.             /* [in] */ IStream *pStream,
  13849.             /* [in] */ IWMReaderCallback *pCallback,
  13850.             /* [in] */ void *pvContext);
  13851.         
  13852.         END_INTERFACE
  13853.     } IWMReaderAdvanced2Vtbl;
  13854.  
  13855.     interface IWMReaderAdvanced2
  13856.     {
  13857.         CONST_VTBL struct IWMReaderAdvanced2Vtbl *lpVtbl;
  13858.     };
  13859.  
  13860.     
  13861.  
  13862. #ifdef COBJMACROS
  13863.  
  13864.  
  13865. #define IWMReaderAdvanced2_QueryInterface(This,riid,ppvObject)    \
  13866.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  13867.  
  13868. #define IWMReaderAdvanced2_AddRef(This)    \
  13869.     (This)->lpVtbl -> AddRef(This)
  13870.  
  13871. #define IWMReaderAdvanced2_Release(This)    \
  13872.     (This)->lpVtbl -> Release(This)
  13873.  
  13874.  
  13875. #define IWMReaderAdvanced2_SetUserProvidedClock(This,fUserClock)    \
  13876.     (This)->lpVtbl -> SetUserProvidedClock(This,fUserClock)
  13877.  
  13878. #define IWMReaderAdvanced2_GetUserProvidedClock(This,pfUserClock)    \
  13879.     (This)->lpVtbl -> GetUserProvidedClock(This,pfUserClock)
  13880.  
  13881. #define IWMReaderAdvanced2_DeliverTime(This,cnsTime)    \
  13882.     (This)->lpVtbl -> DeliverTime(This,cnsTime)
  13883.  
  13884. #define IWMReaderAdvanced2_SetManualStreamSelection(This,fSelection)    \
  13885.     (This)->lpVtbl -> SetManualStreamSelection(This,fSelection)
  13886.  
  13887. #define IWMReaderAdvanced2_GetManualStreamSelection(This,pfSelection)    \
  13888.     (This)->lpVtbl -> GetManualStreamSelection(This,pfSelection)
  13889.  
  13890. #define IWMReaderAdvanced2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)    \
  13891.     (This)->lpVtbl -> SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  13892.  
  13893. #define IWMReaderAdvanced2_GetStreamSelected(This,wStreamNum,pSelection)    \
  13894.     (This)->lpVtbl -> GetStreamSelected(This,wStreamNum,pSelection)
  13895.  
  13896. #define IWMReaderAdvanced2_SetReceiveSelectionCallbacks(This,fGetCallbacks)    \
  13897.     (This)->lpVtbl -> SetReceiveSelectionCallbacks(This,fGetCallbacks)
  13898.  
  13899. #define IWMReaderAdvanced2_GetReceiveSelectionCallbacks(This,pfGetCallbacks)    \
  13900.     (This)->lpVtbl -> GetReceiveSelectionCallbacks(This,pfGetCallbacks)
  13901.  
  13902. #define IWMReaderAdvanced2_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)    \
  13903.     (This)->lpVtbl -> SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
  13904.  
  13905. #define IWMReaderAdvanced2_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)    \
  13906.     (This)->lpVtbl -> GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
  13907.  
  13908. #define IWMReaderAdvanced2_SetAllocateForOutput(This,dwOutputNum,fAllocate)    \
  13909.     (This)->lpVtbl -> SetAllocateForOutput(This,dwOutputNum,fAllocate)
  13910.  
  13911. #define IWMReaderAdvanced2_GetAllocateForOutput(This,dwOutputNum,pfAllocate)    \
  13912.     (This)->lpVtbl -> GetAllocateForOutput(This,dwOutputNum,pfAllocate)
  13913.  
  13914. #define IWMReaderAdvanced2_SetAllocateForStream(This,wStreamNum,fAllocate)    \
  13915.     (This)->lpVtbl -> SetAllocateForStream(This,wStreamNum,fAllocate)
  13916.  
  13917. #define IWMReaderAdvanced2_GetAllocateForStream(This,dwSreamNum,pfAllocate)    \
  13918.     (This)->lpVtbl -> GetAllocateForStream(This,dwSreamNum,pfAllocate)
  13919.  
  13920. #define IWMReaderAdvanced2_GetStatistics(This,pStatistics)    \
  13921.     (This)->lpVtbl -> GetStatistics(This,pStatistics)
  13922.  
  13923. #define IWMReaderAdvanced2_SetClientInfo(This,pClientInfo)    \
  13924.     (This)->lpVtbl -> SetClientInfo(This,pClientInfo)
  13925.  
  13926. #define IWMReaderAdvanced2_GetMaxOutputSampleSize(This,dwOutput,pcbMax)    \
  13927.     (This)->lpVtbl -> GetMaxOutputSampleSize(This,dwOutput,pcbMax)
  13928.  
  13929. #define IWMReaderAdvanced2_GetMaxStreamSampleSize(This,wStream,pcbMax)    \
  13930.     (This)->lpVtbl -> GetMaxStreamSampleSize(This,wStream,pcbMax)
  13931.  
  13932. #define IWMReaderAdvanced2_NotifyLateDelivery(This,cnsLateness)    \
  13933.     (This)->lpVtbl -> NotifyLateDelivery(This,cnsLateness)
  13934.  
  13935.  
  13936. #define IWMReaderAdvanced2_SetPlayMode(This,Mode)    \
  13937.     (This)->lpVtbl -> SetPlayMode(This,Mode)
  13938.  
  13939. #define IWMReaderAdvanced2_GetPlayMode(This,pMode)    \
  13940.     (This)->lpVtbl -> GetPlayMode(This,pMode)
  13941.  
  13942. #define IWMReaderAdvanced2_GetBufferProgress(This,pdwPercent,pcnsBuffering)    \
  13943.     (This)->lpVtbl -> GetBufferProgress(This,pdwPercent,pcnsBuffering)
  13944.  
  13945. #define IWMReaderAdvanced2_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)    \
  13946.     (This)->lpVtbl -> GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
  13947.  
  13948. #define IWMReaderAdvanced2_GetSaveAsProgress(This,pdwPercent)    \
  13949.     (This)->lpVtbl -> GetSaveAsProgress(This,pdwPercent)
  13950.  
  13951. #define IWMReaderAdvanced2_SaveFileAs(This,pwszFilename)    \
  13952.     (This)->lpVtbl -> SaveFileAs(This,pwszFilename)
  13953.  
  13954. #define IWMReaderAdvanced2_GetProtocolName(This,pwszProtocol,pcchProtocol)    \
  13955.     (This)->lpVtbl -> GetProtocolName(This,pwszProtocol,pcchProtocol)
  13956.  
  13957. #define IWMReaderAdvanced2_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)    \
  13958.     (This)->lpVtbl -> StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
  13959.  
  13960. #define IWMReaderAdvanced2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)    \
  13961.     (This)->lpVtbl -> GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
  13962.  
  13963. #define IWMReaderAdvanced2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)    \
  13964.     (This)->lpVtbl -> SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
  13965.  
  13966. #define IWMReaderAdvanced2_Preroll(This,cnsStart,cnsDuration,fRate)    \
  13967.     (This)->lpVtbl -> Preroll(This,cnsStart,cnsDuration,fRate)
  13968.  
  13969. #define IWMReaderAdvanced2_SetLogClientID(This,fLogClientID)    \
  13970.     (This)->lpVtbl -> SetLogClientID(This,fLogClientID)
  13971.  
  13972. #define IWMReaderAdvanced2_GetLogClientID(This,pfLogClientID)    \
  13973.     (This)->lpVtbl -> GetLogClientID(This,pfLogClientID)
  13974.  
  13975. #define IWMReaderAdvanced2_StopBuffering(This)    \
  13976.     (This)->lpVtbl -> StopBuffering(This)
  13977.  
  13978. #define IWMReaderAdvanced2_OpenStream(This,pStream,pCallback,pvContext)    \
  13979.     (This)->lpVtbl -> OpenStream(This,pStream,pCallback,pvContext)
  13980.  
  13981. #endif /* COBJMACROS */
  13982.  
  13983.  
  13984. #endif     /* C style interface */
  13985.  
  13986.  
  13987.  
  13988. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_SetPlayMode_Proxy( 
  13989.     IWMReaderAdvanced2 * This,
  13990.     /* [in] */ WMT_PLAY_MODE Mode);
  13991.  
  13992.  
  13993. void __RPC_STUB IWMReaderAdvanced2_SetPlayMode_Stub(
  13994.     IRpcStubBuffer *This,
  13995.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13996.     PRPC_MESSAGE _pRpcMessage,
  13997.     DWORD *_pdwStubPhase);
  13998.  
  13999.  
  14000. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetPlayMode_Proxy( 
  14001.     IWMReaderAdvanced2 * This,
  14002.     /* [out] */ WMT_PLAY_MODE *pMode);
  14003.  
  14004.  
  14005. void __RPC_STUB IWMReaderAdvanced2_GetPlayMode_Stub(
  14006.     IRpcStubBuffer *This,
  14007.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14008.     PRPC_MESSAGE _pRpcMessage,
  14009.     DWORD *_pdwStubPhase);
  14010.  
  14011.  
  14012. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetBufferProgress_Proxy( 
  14013.     IWMReaderAdvanced2 * This,
  14014.     /* [out] */ DWORD *pdwPercent,
  14015.     /* [out] */ QWORD *pcnsBuffering);
  14016.  
  14017.  
  14018. void __RPC_STUB IWMReaderAdvanced2_GetBufferProgress_Stub(
  14019.     IRpcStubBuffer *This,
  14020.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14021.     PRPC_MESSAGE _pRpcMessage,
  14022.     DWORD *_pdwStubPhase);
  14023.  
  14024.  
  14025. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetDownloadProgress_Proxy( 
  14026.     IWMReaderAdvanced2 * This,
  14027.     /* [out] */ DWORD *pdwPercent,
  14028.     /* [out] */ QWORD *pqwBytesDownloaded,
  14029.     /* [out] */ QWORD *pcnsDownload);
  14030.  
  14031.  
  14032. void __RPC_STUB IWMReaderAdvanced2_GetDownloadProgress_Stub(
  14033.     IRpcStubBuffer *This,
  14034.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14035.     PRPC_MESSAGE _pRpcMessage,
  14036.     DWORD *_pdwStubPhase);
  14037.  
  14038.  
  14039. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetSaveAsProgress_Proxy( 
  14040.     IWMReaderAdvanced2 * This,
  14041.     /* [out] */ DWORD *pdwPercent);
  14042.  
  14043.  
  14044. void __RPC_STUB IWMReaderAdvanced2_GetSaveAsProgress_Stub(
  14045.     IRpcStubBuffer *This,
  14046.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14047.     PRPC_MESSAGE _pRpcMessage,
  14048.     DWORD *_pdwStubPhase);
  14049.  
  14050.  
  14051. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_SaveFileAs_Proxy( 
  14052.     IWMReaderAdvanced2 * This,
  14053.     /* [in] */ const WCHAR *pwszFilename);
  14054.  
  14055.  
  14056. void __RPC_STUB IWMReaderAdvanced2_SaveFileAs_Stub(
  14057.     IRpcStubBuffer *This,
  14058.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14059.     PRPC_MESSAGE _pRpcMessage,
  14060.     DWORD *_pdwStubPhase);
  14061.  
  14062.  
  14063. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetProtocolName_Proxy( 
  14064.     IWMReaderAdvanced2 * This,
  14065.     /* [size_is][out] */ WCHAR *pwszProtocol,
  14066.     /* [out][in] */ DWORD *pcchProtocol);
  14067.  
  14068.  
  14069. void __RPC_STUB IWMReaderAdvanced2_GetProtocolName_Stub(
  14070.     IRpcStubBuffer *This,
  14071.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14072.     PRPC_MESSAGE _pRpcMessage,
  14073.     DWORD *_pdwStubPhase);
  14074.  
  14075.  
  14076. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_StartAtMarker_Proxy( 
  14077.     IWMReaderAdvanced2 * This,
  14078.     /* [in] */ WORD wMarkerIndex,
  14079.     /* [in] */ QWORD cnsDuration,
  14080.     /* [in] */ float fRate,
  14081.     /* [in] */ void *pvContext);
  14082.  
  14083.  
  14084. void __RPC_STUB IWMReaderAdvanced2_StartAtMarker_Stub(
  14085.     IRpcStubBuffer *This,
  14086.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14087.     PRPC_MESSAGE _pRpcMessage,
  14088.     DWORD *_pdwStubPhase);
  14089.  
  14090.  
  14091. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetOutputSetting_Proxy( 
  14092.     IWMReaderAdvanced2 * This,
  14093.     /* [in] */ DWORD dwOutputNum,
  14094.     /* [in] */ LPCWSTR pszName,
  14095.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  14096.     /* [size_is][out] */ BYTE *pValue,
  14097.     /* [out][in] */ WORD *pcbLength);
  14098.  
  14099.  
  14100. void __RPC_STUB IWMReaderAdvanced2_GetOutputSetting_Stub(
  14101.     IRpcStubBuffer *This,
  14102.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14103.     PRPC_MESSAGE _pRpcMessage,
  14104.     DWORD *_pdwStubPhase);
  14105.  
  14106.  
  14107. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_SetOutputSetting_Proxy( 
  14108.     IWMReaderAdvanced2 * This,
  14109.     /* [in] */ DWORD dwOutputNum,
  14110.     /* [in] */ LPCWSTR pszName,
  14111.     /* [in] */ WMT_ATTR_DATATYPE Type,
  14112.     /* [size_is][in] */ const BYTE *pValue,
  14113.     /* [in] */ WORD cbLength);
  14114.  
  14115.  
  14116. void __RPC_STUB IWMReaderAdvanced2_SetOutputSetting_Stub(
  14117.     IRpcStubBuffer *This,
  14118.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14119.     PRPC_MESSAGE _pRpcMessage,
  14120.     DWORD *_pdwStubPhase);
  14121.  
  14122.  
  14123. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_Preroll_Proxy( 
  14124.     IWMReaderAdvanced2 * This,
  14125.     /* [in] */ QWORD cnsStart,
  14126.     /* [in] */ QWORD cnsDuration,
  14127.     /* [in] */ float fRate);
  14128.  
  14129.  
  14130. void __RPC_STUB IWMReaderAdvanced2_Preroll_Stub(
  14131.     IRpcStubBuffer *This,
  14132.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14133.     PRPC_MESSAGE _pRpcMessage,
  14134.     DWORD *_pdwStubPhase);
  14135.  
  14136.  
  14137. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_SetLogClientID_Proxy( 
  14138.     IWMReaderAdvanced2 * This,
  14139.     /* [in] */ BOOL fLogClientID);
  14140.  
  14141.  
  14142. void __RPC_STUB IWMReaderAdvanced2_SetLogClientID_Stub(
  14143.     IRpcStubBuffer *This,
  14144.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14145.     PRPC_MESSAGE _pRpcMessage,
  14146.     DWORD *_pdwStubPhase);
  14147.  
  14148.  
  14149. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetLogClientID_Proxy( 
  14150.     IWMReaderAdvanced2 * This,
  14151.     /* [out] */ BOOL *pfLogClientID);
  14152.  
  14153.  
  14154. void __RPC_STUB IWMReaderAdvanced2_GetLogClientID_Stub(
  14155.     IRpcStubBuffer *This,
  14156.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14157.     PRPC_MESSAGE _pRpcMessage,
  14158.     DWORD *_pdwStubPhase);
  14159.  
  14160.  
  14161. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_StopBuffering_Proxy( 
  14162.     IWMReaderAdvanced2 * This);
  14163.  
  14164.  
  14165. void __RPC_STUB IWMReaderAdvanced2_StopBuffering_Stub(
  14166.     IRpcStubBuffer *This,
  14167.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14168.     PRPC_MESSAGE _pRpcMessage,
  14169.     DWORD *_pdwStubPhase);
  14170.  
  14171.  
  14172. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_OpenStream_Proxy( 
  14173.     IWMReaderAdvanced2 * This,
  14174.     /* [in] */ IStream *pStream,
  14175.     /* [in] */ IWMReaderCallback *pCallback,
  14176.     /* [in] */ void *pvContext);
  14177.  
  14178.  
  14179. void __RPC_STUB IWMReaderAdvanced2_OpenStream_Stub(
  14180.     IRpcStubBuffer *This,
  14181.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14182.     PRPC_MESSAGE _pRpcMessage,
  14183.     DWORD *_pdwStubPhase);
  14184.  
  14185.  
  14186.  
  14187. #endif     /* __IWMReaderAdvanced2_INTERFACE_DEFINED__ */
  14188.  
  14189.  
  14190. #ifndef __IWMReaderAdvanced3_INTERFACE_DEFINED__
  14191. #define __IWMReaderAdvanced3_INTERFACE_DEFINED__
  14192.  
  14193. /* interface IWMReaderAdvanced3 */
  14194. /* [local][unique][helpstring][uuid][object] */ 
  14195.  
  14196.  
  14197. EXTERN_C const IID IID_IWMReaderAdvanced3;
  14198.  
  14199. #if defined(__cplusplus) && !defined(CINTERFACE)
  14200.     
  14201.     MIDL_INTERFACE("5DC0674B-F04B-4a4e-9F2A-B1AFDE2C8100")
  14202.     IWMReaderAdvanced3 : public IWMReaderAdvanced2
  14203.     {
  14204.     public:
  14205.         virtual HRESULT STDMETHODCALLTYPE StopNetStreaming( void) = 0;
  14206.         
  14207.         virtual HRESULT STDMETHODCALLTYPE StartAtPosition( 
  14208.             /* [in] */ WORD wStreamNum,
  14209.             /* [in] */ void *pvOffsetStart,
  14210.             /* [in] */ void *pvDuration,
  14211.             /* [in] */ WMT_OFFSET_FORMAT dwOffsetFormat,
  14212.             /* [in] */ float fRate,
  14213.             /* [in] */ void *pvContext) = 0;
  14214.         
  14215.     };
  14216.     
  14217. #else     /* C style interface */
  14218.  
  14219.     typedef struct IWMReaderAdvanced3Vtbl
  14220.     {
  14221.         BEGIN_INTERFACE
  14222.         
  14223.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  14224.             IWMReaderAdvanced3 * This,
  14225.             /* [in] */ REFIID riid,
  14226.             /* [iid_is][out] */ void **ppvObject);
  14227.         
  14228.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  14229.             IWMReaderAdvanced3 * This);
  14230.         
  14231.         ULONG ( STDMETHODCALLTYPE *Release )( 
  14232.             IWMReaderAdvanced3 * This);
  14233.         
  14234.         HRESULT ( STDMETHODCALLTYPE *SetUserProvidedClock )( 
  14235.             IWMReaderAdvanced3 * This,
  14236.             /* [in] */ BOOL fUserClock);
  14237.         
  14238.         HRESULT ( STDMETHODCALLTYPE *GetUserProvidedClock )( 
  14239.             IWMReaderAdvanced3 * This,
  14240.             /* [out] */ BOOL *pfUserClock);
  14241.         
  14242.         HRESULT ( STDMETHODCALLTYPE *DeliverTime )( 
  14243.             IWMReaderAdvanced3 * This,
  14244.             /* [in] */ QWORD cnsTime);
  14245.         
  14246.         HRESULT ( STDMETHODCALLTYPE *SetManualStreamSelection )( 
  14247.             IWMReaderAdvanced3 * This,
  14248.             /* [in] */ BOOL fSelection);
  14249.         
  14250.         HRESULT ( STDMETHODCALLTYPE *GetManualStreamSelection )( 
  14251.             IWMReaderAdvanced3 * This,
  14252.             /* [out] */ BOOL *pfSelection);
  14253.         
  14254.         HRESULT ( STDMETHODCALLTYPE *SetStreamsSelected )( 
  14255.             IWMReaderAdvanced3 * This,
  14256.             /* [in] */ WORD cStreamCount,
  14257.             /* [in] */ WORD *pwStreamNumbers,
  14258.             /* [in] */ WMT_STREAM_SELECTION *pSelections);
  14259.         
  14260.         HRESULT ( STDMETHODCALLTYPE *GetStreamSelected )( 
  14261.             IWMReaderAdvanced3 * This,
  14262.             /* [in] */ WORD wStreamNum,
  14263.             /* [out] */ WMT_STREAM_SELECTION *pSelection);
  14264.         
  14265.         HRESULT ( STDMETHODCALLTYPE *SetReceiveSelectionCallbacks )( 
  14266.             IWMReaderAdvanced3 * This,
  14267.             /* [in] */ BOOL fGetCallbacks);
  14268.         
  14269.         HRESULT ( STDMETHODCALLTYPE *GetReceiveSelectionCallbacks )( 
  14270.             IWMReaderAdvanced3 * This,
  14271.             /* [out] */ BOOL *pfGetCallbacks);
  14272.         
  14273.         HRESULT ( STDMETHODCALLTYPE *SetReceiveStreamSamples )( 
  14274.             IWMReaderAdvanced3 * This,
  14275.             /* [in] */ WORD wStreamNum,
  14276.             /* [in] */ BOOL fReceiveStreamSamples);
  14277.         
  14278.         HRESULT ( STDMETHODCALLTYPE *GetReceiveStreamSamples )( 
  14279.             IWMReaderAdvanced3 * This,
  14280.             /* [in] */ WORD wStreamNum,
  14281.             /* [out] */ BOOL *pfReceiveStreamSamples);
  14282.         
  14283.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForOutput )( 
  14284.             IWMReaderAdvanced3 * This,
  14285.             /* [in] */ DWORD dwOutputNum,
  14286.             /* [in] */ BOOL fAllocate);
  14287.         
  14288.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForOutput )( 
  14289.             IWMReaderAdvanced3 * This,
  14290.             /* [in] */ DWORD dwOutputNum,
  14291.             /* [out] */ BOOL *pfAllocate);
  14292.         
  14293.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForStream )( 
  14294.             IWMReaderAdvanced3 * This,
  14295.             /* [in] */ WORD wStreamNum,
  14296.             /* [in] */ BOOL fAllocate);
  14297.         
  14298.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForStream )( 
  14299.             IWMReaderAdvanced3 * This,
  14300.             /* [in] */ WORD dwSreamNum,
  14301.             /* [out] */ BOOL *pfAllocate);
  14302.         
  14303.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  14304.             IWMReaderAdvanced3 * This,
  14305.             /* [out][in] */ WM_READER_STATISTICS *pStatistics);
  14306.         
  14307.         HRESULT ( STDMETHODCALLTYPE *SetClientInfo )( 
  14308.             IWMReaderAdvanced3 * This,
  14309.             /* [in] */ WM_READER_CLIENTINFO *pClientInfo);
  14310.         
  14311.         HRESULT ( STDMETHODCALLTYPE *GetMaxOutputSampleSize )( 
  14312.             IWMReaderAdvanced3 * This,
  14313.             /* [in] */ DWORD dwOutput,
  14314.             /* [out] */ DWORD *pcbMax);
  14315.         
  14316.         HRESULT ( STDMETHODCALLTYPE *GetMaxStreamSampleSize )( 
  14317.             IWMReaderAdvanced3 * This,
  14318.             /* [in] */ WORD wStream,
  14319.             /* [out] */ DWORD *pcbMax);
  14320.         
  14321.         HRESULT ( STDMETHODCALLTYPE *NotifyLateDelivery )( 
  14322.             IWMReaderAdvanced3 * This,
  14323.             QWORD cnsLateness);
  14324.         
  14325.         HRESULT ( STDMETHODCALLTYPE *SetPlayMode )( 
  14326.             IWMReaderAdvanced3 * This,
  14327.             /* [in] */ WMT_PLAY_MODE Mode);
  14328.         
  14329.         HRESULT ( STDMETHODCALLTYPE *GetPlayMode )( 
  14330.             IWMReaderAdvanced3 * This,
  14331.             /* [out] */ WMT_PLAY_MODE *pMode);
  14332.         
  14333.         HRESULT ( STDMETHODCALLTYPE *GetBufferProgress )( 
  14334.             IWMReaderAdvanced3 * This,
  14335.             /* [out] */ DWORD *pdwPercent,
  14336.             /* [out] */ QWORD *pcnsBuffering);
  14337.         
  14338.         HRESULT ( STDMETHODCALLTYPE *GetDownloadProgress )( 
  14339.             IWMReaderAdvanced3 * This,
  14340.             /* [out] */ DWORD *pdwPercent,
  14341.             /* [out] */ QWORD *pqwBytesDownloaded,
  14342.             /* [out] */ QWORD *pcnsDownload);
  14343.         
  14344.         HRESULT ( STDMETHODCALLTYPE *GetSaveAsProgress )( 
  14345.             IWMReaderAdvanced3 * This,
  14346.             /* [out] */ DWORD *pdwPercent);
  14347.         
  14348.         HRESULT ( STDMETHODCALLTYPE *SaveFileAs )( 
  14349.             IWMReaderAdvanced3 * This,
  14350.             /* [in] */ const WCHAR *pwszFilename);
  14351.         
  14352.         HRESULT ( STDMETHODCALLTYPE *GetProtocolName )( 
  14353.             IWMReaderAdvanced3 * This,
  14354.             /* [size_is][out] */ WCHAR *pwszProtocol,
  14355.             /* [out][in] */ DWORD *pcchProtocol);
  14356.         
  14357.         HRESULT ( STDMETHODCALLTYPE *StartAtMarker )( 
  14358.             IWMReaderAdvanced3 * This,
  14359.             /* [in] */ WORD wMarkerIndex,
  14360.             /* [in] */ QWORD cnsDuration,
  14361.             /* [in] */ float fRate,
  14362.             /* [in] */ void *pvContext);
  14363.         
  14364.         HRESULT ( STDMETHODCALLTYPE *GetOutputSetting )( 
  14365.             IWMReaderAdvanced3 * This,
  14366.             /* [in] */ DWORD dwOutputNum,
  14367.             /* [in] */ LPCWSTR pszName,
  14368.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  14369.             /* [size_is][out] */ BYTE *pValue,
  14370.             /* [out][in] */ WORD *pcbLength);
  14371.         
  14372.         HRESULT ( STDMETHODCALLTYPE *SetOutputSetting )( 
  14373.             IWMReaderAdvanced3 * This,
  14374.             /* [in] */ DWORD dwOutputNum,
  14375.             /* [in] */ LPCWSTR pszName,
  14376.             /* [in] */ WMT_ATTR_DATATYPE Type,
  14377.             /* [size_is][in] */ const BYTE *pValue,
  14378.             /* [in] */ WORD cbLength);
  14379.         
  14380.         HRESULT ( STDMETHODCALLTYPE *Preroll )( 
  14381.             IWMReaderAdvanced3 * This,
  14382.             /* [in] */ QWORD cnsStart,
  14383.             /* [in] */ QWORD cnsDuration,
  14384.             /* [in] */ float fRate);
  14385.         
  14386.         HRESULT ( STDMETHODCALLTYPE *SetLogClientID )( 
  14387.             IWMReaderAdvanced3 * This,
  14388.             /* [in] */ BOOL fLogClientID);
  14389.         
  14390.         HRESULT ( STDMETHODCALLTYPE *GetLogClientID )( 
  14391.             IWMReaderAdvanced3 * This,
  14392.             /* [out] */ BOOL *pfLogClientID);
  14393.         
  14394.         HRESULT ( STDMETHODCALLTYPE *StopBuffering )( 
  14395.             IWMReaderAdvanced3 * This);
  14396.         
  14397.         HRESULT ( STDMETHODCALLTYPE *OpenStream )( 
  14398.             IWMReaderAdvanced3 * This,
  14399.             /* [in] */ IStream *pStream,
  14400.             /* [in] */ IWMReaderCallback *pCallback,
  14401.             /* [in] */ void *pvContext);
  14402.         
  14403.         HRESULT ( STDMETHODCALLTYPE *StopNetStreaming )( 
  14404.             IWMReaderAdvanced3 * This);
  14405.         
  14406.         HRESULT ( STDMETHODCALLTYPE *StartAtPosition )( 
  14407.             IWMReaderAdvanced3 * This,
  14408.             /* [in] */ WORD wStreamNum,
  14409.             /* [in] */ void *pvOffsetStart,
  14410.             /* [in] */ void *pvDuration,
  14411.             /* [in] */ WMT_OFFSET_FORMAT dwOffsetFormat,
  14412.             /* [in] */ float fRate,
  14413.             /* [in] */ void *pvContext);
  14414.         
  14415.         END_INTERFACE
  14416.     } IWMReaderAdvanced3Vtbl;
  14417.  
  14418.     interface IWMReaderAdvanced3
  14419.     {
  14420.         CONST_VTBL struct IWMReaderAdvanced3Vtbl *lpVtbl;
  14421.     };
  14422.  
  14423.     
  14424.  
  14425. #ifdef COBJMACROS
  14426.  
  14427.  
  14428. #define IWMReaderAdvanced3_QueryInterface(This,riid,ppvObject)    \
  14429.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  14430.  
  14431. #define IWMReaderAdvanced3_AddRef(This)    \
  14432.     (This)->lpVtbl -> AddRef(This)
  14433.  
  14434. #define IWMReaderAdvanced3_Release(This)    \
  14435.     (This)->lpVtbl -> Release(This)
  14436.  
  14437.  
  14438. #define IWMReaderAdvanced3_SetUserProvidedClock(This,fUserClock)    \
  14439.     (This)->lpVtbl -> SetUserProvidedClock(This,fUserClock)
  14440.  
  14441. #define IWMReaderAdvanced3_GetUserProvidedClock(This,pfUserClock)    \
  14442.     (This)->lpVtbl -> GetUserProvidedClock(This,pfUserClock)
  14443.  
  14444. #define IWMReaderAdvanced3_DeliverTime(This,cnsTime)    \
  14445.     (This)->lpVtbl -> DeliverTime(This,cnsTime)
  14446.  
  14447. #define IWMReaderAdvanced3_SetManualStreamSelection(This,fSelection)    \
  14448.     (This)->lpVtbl -> SetManualStreamSelection(This,fSelection)
  14449.  
  14450. #define IWMReaderAdvanced3_GetManualStreamSelection(This,pfSelection)    \
  14451.     (This)->lpVtbl -> GetManualStreamSelection(This,pfSelection)
  14452.  
  14453. #define IWMReaderAdvanced3_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)    \
  14454.     (This)->lpVtbl -> SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  14455.  
  14456. #define IWMReaderAdvanced3_GetStreamSelected(This,wStreamNum,pSelection)    \
  14457.     (This)->lpVtbl -> GetStreamSelected(This,wStreamNum,pSelection)
  14458.  
  14459. #define IWMReaderAdvanced3_SetReceiveSelectionCallbacks(This,fGetCallbacks)    \
  14460.     (This)->lpVtbl -> SetReceiveSelectionCallbacks(This,fGetCallbacks)
  14461.  
  14462. #define IWMReaderAdvanced3_GetReceiveSelectionCallbacks(This,pfGetCallbacks)    \
  14463.     (This)->lpVtbl -> GetReceiveSelectionCallbacks(This,pfGetCallbacks)
  14464.  
  14465. #define IWMReaderAdvanced3_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)    \
  14466.     (This)->lpVtbl -> SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
  14467.  
  14468. #define IWMReaderAdvanced3_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)    \
  14469.     (This)->lpVtbl -> GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
  14470.  
  14471. #define IWMReaderAdvanced3_SetAllocateForOutput(This,dwOutputNum,fAllocate)    \
  14472.     (This)->lpVtbl -> SetAllocateForOutput(This,dwOutputNum,fAllocate)
  14473.  
  14474. #define IWMReaderAdvanced3_GetAllocateForOutput(This,dwOutputNum,pfAllocate)    \
  14475.     (This)->lpVtbl -> GetAllocateForOutput(This,dwOutputNum,pfAllocate)
  14476.  
  14477. #define IWMReaderAdvanced3_SetAllocateForStream(This,wStreamNum,fAllocate)    \
  14478.     (This)->lpVtbl -> SetAllocateForStream(This,wStreamNum,fAllocate)
  14479.  
  14480. #define IWMReaderAdvanced3_GetAllocateForStream(This,dwSreamNum,pfAllocate)    \
  14481.     (This)->lpVtbl -> GetAllocateForStream(This,dwSreamNum,pfAllocate)
  14482.  
  14483. #define IWMReaderAdvanced3_GetStatistics(This,pStatistics)    \
  14484.     (This)->lpVtbl -> GetStatistics(This,pStatistics)
  14485.  
  14486. #define IWMReaderAdvanced3_SetClientInfo(This,pClientInfo)    \
  14487.     (This)->lpVtbl -> SetClientInfo(This,pClientInfo)
  14488.  
  14489. #define IWMReaderAdvanced3_GetMaxOutputSampleSize(This,dwOutput,pcbMax)    \
  14490.     (This)->lpVtbl -> GetMaxOutputSampleSize(This,dwOutput,pcbMax)
  14491.  
  14492. #define IWMReaderAdvanced3_GetMaxStreamSampleSize(This,wStream,pcbMax)    \
  14493.     (This)->lpVtbl -> GetMaxStreamSampleSize(This,wStream,pcbMax)
  14494.  
  14495. #define IWMReaderAdvanced3_NotifyLateDelivery(This,cnsLateness)    \
  14496.     (This)->lpVtbl -> NotifyLateDelivery(This,cnsLateness)
  14497.  
  14498.  
  14499. #define IWMReaderAdvanced3_SetPlayMode(This,Mode)    \
  14500.     (This)->lpVtbl -> SetPlayMode(This,Mode)
  14501.  
  14502. #define IWMReaderAdvanced3_GetPlayMode(This,pMode)    \
  14503.     (This)->lpVtbl -> GetPlayMode(This,pMode)
  14504.  
  14505. #define IWMReaderAdvanced3_GetBufferProgress(This,pdwPercent,pcnsBuffering)    \
  14506.     (This)->lpVtbl -> GetBufferProgress(This,pdwPercent,pcnsBuffering)
  14507.  
  14508. #define IWMReaderAdvanced3_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)    \
  14509.     (This)->lpVtbl -> GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
  14510.  
  14511. #define IWMReaderAdvanced3_GetSaveAsProgress(This,pdwPercent)    \
  14512.     (This)->lpVtbl -> GetSaveAsProgress(This,pdwPercent)
  14513.  
  14514. #define IWMReaderAdvanced3_SaveFileAs(This,pwszFilename)    \
  14515.     (This)->lpVtbl -> SaveFileAs(This,pwszFilename)
  14516.  
  14517. #define IWMReaderAdvanced3_GetProtocolName(This,pwszProtocol,pcchProtocol)    \
  14518.     (This)->lpVtbl -> GetProtocolName(This,pwszProtocol,pcchProtocol)
  14519.  
  14520. #define IWMReaderAdvanced3_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)    \
  14521.     (This)->lpVtbl -> StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
  14522.  
  14523. #define IWMReaderAdvanced3_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)    \
  14524.     (This)->lpVtbl -> GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
  14525.  
  14526. #define IWMReaderAdvanced3_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)    \
  14527.     (This)->lpVtbl -> SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
  14528.  
  14529. #define IWMReaderAdvanced3_Preroll(This,cnsStart,cnsDuration,fRate)    \
  14530.     (This)->lpVtbl -> Preroll(This,cnsStart,cnsDuration,fRate)
  14531.  
  14532. #define IWMReaderAdvanced3_SetLogClientID(This,fLogClientID)    \
  14533.     (This)->lpVtbl -> SetLogClientID(This,fLogClientID)
  14534.  
  14535. #define IWMReaderAdvanced3_GetLogClientID(This,pfLogClientID)    \
  14536.     (This)->lpVtbl -> GetLogClientID(This,pfLogClientID)
  14537.  
  14538. #define IWMReaderAdvanced3_StopBuffering(This)    \
  14539.     (This)->lpVtbl -> StopBuffering(This)
  14540.  
  14541. #define IWMReaderAdvanced3_OpenStream(This,pStream,pCallback,pvContext)    \
  14542.     (This)->lpVtbl -> OpenStream(This,pStream,pCallback,pvContext)
  14543.  
  14544.  
  14545. #define IWMReaderAdvanced3_StopNetStreaming(This)    \
  14546.     (This)->lpVtbl -> StopNetStreaming(This)
  14547.  
  14548. #define IWMReaderAdvanced3_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)    \
  14549.     (This)->lpVtbl -> StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
  14550.  
  14551. #endif /* COBJMACROS */
  14552.  
  14553.  
  14554. #endif     /* C style interface */
  14555.  
  14556.  
  14557.  
  14558. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced3_StopNetStreaming_Proxy( 
  14559.     IWMReaderAdvanced3 * This);
  14560.  
  14561.  
  14562. void __RPC_STUB IWMReaderAdvanced3_StopNetStreaming_Stub(
  14563.     IRpcStubBuffer *This,
  14564.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14565.     PRPC_MESSAGE _pRpcMessage,
  14566.     DWORD *_pdwStubPhase);
  14567.  
  14568.  
  14569. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced3_StartAtPosition_Proxy( 
  14570.     IWMReaderAdvanced3 * This,
  14571.     /* [in] */ WORD wStreamNum,
  14572.     /* [in] */ void *pvOffsetStart,
  14573.     /* [in] */ void *pvDuration,
  14574.     /* [in] */ WMT_OFFSET_FORMAT dwOffsetFormat,
  14575.     /* [in] */ float fRate,
  14576.     /* [in] */ void *pvContext);
  14577.  
  14578.  
  14579. void __RPC_STUB IWMReaderAdvanced3_StartAtPosition_Stub(
  14580.     IRpcStubBuffer *This,
  14581.     IRpcChannelBuffer *_pRpcChannelBuffer,
  14582.     PRPC_MESSAGE _pRpcMessage,
  14583.     DWORD *_pdwStubPhase);
  14584.  
  14585.  
  14586.  
  14587. #endif     /* __IWMReaderAdvanced3_INTERFACE_DEFINED__ */
  14588.  
  14589.  
  14590. #ifndef __IWMReaderAdvanced4_INTERFACE_DEFINED__
  14591. #define __IWMReaderAdvanced4_INTERFACE_DEFINED__
  14592.  
  14593. /* interface IWMReaderAdvanced4 */
  14594. /* [local][unique][helpstring][uuid][object] */ 
  14595.  
  14596.  
  14597. EXTERN_C const IID IID_IWMReaderAdvanced4;
  14598.  
  14599. #if defined(__cplusplus) && !defined(CINTERFACE)
  14600.     
  14601.     MIDL_INTERFACE("945A76A2-12AE-4d48-BD3C-CD1D90399B85")
  14602.     IWMReaderAdvanced4 : public IWMReaderAdvanced3
  14603.     {
  14604.     public:
  14605.         virtual HRESULT STDMETHODCALLTYPE GetLanguageCount( 
  14606.             /* [in] */ DWORD dwOutputNum,
  14607.             /* [out] */ WORD *pwLanguageCount) = 0;
  14608.         
  14609.         virtual HRESULT STDMETHODCALLTYPE GetLanguage( 
  14610.             /* [in] */ DWORD dwOutputNum,
  14611.             /* [in] */ WORD wLanguage,
  14612.             /* [size_is][out] */ WCHAR *pwszLanguageString,
  14613.             /* [out][in] */ WORD *pcchLanguageStringLength) = 0;
  14614.         
  14615.         virtual HRESULT STDMETHODCALLTYPE GetMaxSpeedFactor( 
  14616.             /* [out] */ double *pdblFactor) = 0;
  14617.         
  14618.         virtual HRESULT STDMETHODCALLTYPE IsUsingFastCache( 
  14619.             /* [out] */ BOOL *pfUsingFastCache) = 0;
  14620.         
  14621.         virtual HRESULT STDMETHODCALLTYPE AddLogParam( 
  14622.             /* [in] */ LPCWSTR wszNameSpace,
  14623.             /* [in] */ LPCWSTR wszName,
  14624.             /* [in] */ LPCWSTR wszValue) = 0;
  14625.         
  14626.         virtual HRESULT STDMETHODCALLTYPE SendLogParams( void) = 0;
  14627.         
  14628.         virtual HRESULT STDMETHODCALLTYPE CanSaveFileAs( 
  14629.             /* [out] */ BOOL *pfCanSave) = 0;
  14630.         
  14631.         virtual HRESULT STDMETHODCALLTYPE CancelSaveFileAs( void) = 0;
  14632.         
  14633.         virtual HRESULT STDMETHODCALLTYPE GetURL( 
  14634.             /* [size_is][out] */ WCHAR *pwszURL,
  14635.             /* [out][in] */ DWORD *pcchURL) = 0;
  14636.         
  14637.     };
  14638.     
  14639. #else     /* C style interface */
  14640.  
  14641.     typedef struct IWMReaderAdvanced4Vtbl
  14642.     {
  14643.         BEGIN_INTERFACE
  14644.         
  14645.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  14646.             IWMReaderAdvanced4 * This,
  14647.             /* [in] */ REFIID riid,
  14648.             /* [iid_is][out] */ void **ppvObject);
  14649.         
  14650.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  14651.             IWMReaderAdvanced4 * This);
  14652.         
  14653.         ULONG ( STDMETHODCALLTYPE *Release )( 
  14654.             IWMReaderAdvanced4 * This);
  14655.         
  14656.         HRESULT ( STDMETHODCALLTYPE *SetUserProvidedClock )( 
  14657.             IWMReaderAdvanced4 * This,
  14658.             /* [in] */ BOOL fUserClock);
  14659.         
  14660.         HRESULT ( STDMETHODCALLTYPE *GetUserProvidedClock )( 
  14661.             IWMReaderAdvanced4 * This,
  14662.             /* [out] */ BOOL *pfUserClock);
  14663.         
  14664.         HRESULT ( STDMETHODCALLTYPE *DeliverTime )( 
  14665.             IWMReaderAdvanced4 * This,
  14666.             /* [in] */ QWORD cnsTime);
  14667.         
  14668.         HRESULT ( STDMETHODCALLTYPE *SetManualStreamSelection )( 
  14669.             IWMReaderAdvanced4 * This,
  14670.             /* [in] */ BOOL fSelection);
  14671.         
  14672.         HRESULT ( STDMETHODCALLTYPE *GetManualStreamSelection )( 
  14673.             IWMReaderAdvanced4 * This,
  14674.             /* [out] */ BOOL *pfSelection);
  14675.         
  14676.         HRESULT ( STDMETHODCALLTYPE *SetStreamsSelected )( 
  14677.             IWMReaderAdvanced4 * This,
  14678.             /* [in] */ WORD cStreamCount,
  14679.             /* [in] */ WORD *pwStreamNumbers,
  14680.             /* [in] */ WMT_STREAM_SELECTION *pSelections);
  14681.         
  14682.         HRESULT ( STDMETHODCALLTYPE *GetStreamSelected )( 
  14683.             IWMReaderAdvanced4 * This,
  14684.             /* [in] */ WORD wStreamNum,
  14685.             /* [out] */ WMT_STREAM_SELECTION *pSelection);
  14686.         
  14687.         HRESULT ( STDMETHODCALLTYPE *SetReceiveSelectionCallbacks )( 
  14688.             IWMReaderAdvanced4 * This,
  14689.             /* [in] */ BOOL fGetCallbacks);
  14690.         
  14691.         HRESULT ( STDMETHODCALLTYPE *GetReceiveSelectionCallbacks )( 
  14692.             IWMReaderAdvanced4 * This,
  14693.             /* [out] */ BOOL *pfGetCallbacks);
  14694.         
  14695.         HRESULT ( STDMETHODCALLTYPE *SetReceiveStreamSamples )( 
  14696.             IWMReaderAdvanced4 * This,
  14697.             /* [in] */ WORD wStreamNum,
  14698.             /* [in] */ BOOL fReceiveStreamSamples);
  14699.         
  14700.         HRESULT ( STDMETHODCALLTYPE *GetReceiveStreamSamples )( 
  14701.             IWMReaderAdvanced4 * This,
  14702.             /* [in] */ WORD wStreamNum,
  14703.             /* [out] */ BOOL *pfReceiveStreamSamples);
  14704.         
  14705.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForOutput )( 
  14706.             IWMReaderAdvanced4 * This,
  14707.             /* [in] */ DWORD dwOutputNum,
  14708.             /* [in] */ BOOL fAllocate);
  14709.         
  14710.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForOutput )( 
  14711.             IWMReaderAdvanced4 * This,
  14712.             /* [in] */ DWORD dwOutputNum,
  14713.             /* [out] */ BOOL *pfAllocate);
  14714.         
  14715.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForStream )( 
  14716.             IWMReaderAdvanced4 * This,
  14717.             /* [in] */ WORD wStreamNum,
  14718.             /* [in] */ BOOL fAllocate);
  14719.         
  14720.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForStream )( 
  14721.             IWMReaderAdvanced4 * This,
  14722.             /* [in] */ WORD dwSreamNum,
  14723.             /* [out] */ BOOL *pfAllocate);
  14724.         
  14725.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  14726.             IWMReaderAdvanced4 * This,
  14727.             /* [out][in] */ WM_READER_STATISTICS *pStatistics);
  14728.         
  14729.         HRESULT ( STDMETHODCALLTYPE *SetClientInfo )( 
  14730.             IWMReaderAdvanced4 * This,
  14731.             /* [in] */ WM_READER_CLIENTINFO *pClientInfo);
  14732.         
  14733.         HRESULT ( STDMETHODCALLTYPE *GetMaxOutputSampleSize )( 
  14734.             IWMReaderAdvanced4 * This,
  14735.             /* [in] */ DWORD dwOutput,
  14736.             /* [out] */ DWORD *pcbMax);
  14737.         
  14738.         HRESULT ( STDMETHODCALLTYPE *GetMaxStreamSampleSize )( 
  14739.             IWMReaderAdvanced4 * This,
  14740.             /* [in] */ WORD wStream,
  14741.             /* [out] */ DWORD *pcbMax);
  14742.         
  14743.         HRESULT ( STDMETHODCALLTYPE *NotifyLateDelivery )( 
  14744.             IWMReaderAdvanced4 * This,
  14745.             QWORD cnsLateness);
  14746.         
  14747.         HRESULT ( STDMETHODCALLTYPE *SetPlayMode )( 
  14748.             IWMReaderAdvanced4 * This,
  14749.             /* [in] */ WMT_PLAY_MODE Mode);
  14750.         
  14751.         HRESULT ( STDMETHODCALLTYPE *GetPlayMode )( 
  14752.             IWMReaderAdvanced4 * This,
  14753.             /* [out] */ WMT_PLAY_MODE *pMode);
  14754.         
  14755.         HRESULT ( STDMETHODCALLTYPE *GetBufferProgress )( 
  14756.             IWMReaderAdvanced4 * This,
  14757.             /* [out] */ DWORD *pdwPercent,
  14758.             /* [out] */ QWORD *pcnsBuffering);
  14759.         
  14760.         HRESULT ( STDMETHODCALLTYPE *GetDownloadProgress )( 
  14761.             IWMReaderAdvanced4 * This,
  14762.             /* [out] */ DWORD *pdwPercent,
  14763.             /* [out] */ QWORD *pqwBytesDownloaded,
  14764.             /* [out] */ QWORD *pcnsDownload);
  14765.         
  14766.         HRESULT ( STDMETHODCALLTYPE *GetSaveAsProgress )( 
  14767.             IWMReaderAdvanced4 * This,
  14768.             /* [out] */ DWORD *pdwPercent);
  14769.         
  14770.         HRESULT ( STDMETHODCALLTYPE *SaveFileAs )( 
  14771.             IWMReaderAdvanced4 * This,
  14772.             /* [in] */ const WCHAR *pwszFilename);
  14773.         
  14774.         HRESULT ( STDMETHODCALLTYPE *GetProtocolName )( 
  14775.             IWMReaderAdvanced4 * This,
  14776.             /* [size_is][out] */ WCHAR *pwszProtocol,
  14777.             /* [out][in] */ DWORD *pcchProtocol);
  14778.         
  14779.         HRESULT ( STDMETHODCALLTYPE *StartAtMarker )( 
  14780.             IWMReaderAdvanced4 * This,
  14781.             /* [in] */ WORD wMarkerIndex,
  14782.             /* [in] */ QWORD cnsDuration,
  14783.             /* [in] */ float fRate,
  14784.             /* [in] */ void *pvContext);
  14785.         
  14786.         HRESULT ( STDMETHODCALLTYPE *GetOutputSetting )( 
  14787.             IWMReaderAdvanced4 * This,
  14788.             /* [in] */ DWORD dwOutputNum,
  14789.             /* [in] */ LPCWSTR pszName,
  14790.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  14791.             /* [size_is][out] */ BYTE *pValue,
  14792.             /* [out][in] */ WORD *pcbLength);
  14793.         
  14794.         HRESULT ( STDMETHODCALLTYPE *SetOutputSetting )( 
  14795.             IWMReaderAdvanced4 * This,
  14796.             /* [in] */ DWORD dwOutputNum,
  14797.             /* [in] */ LPCWSTR pszName,
  14798.             /* [in] */ WMT_ATTR_DATATYPE Type,
  14799.             /* [size_is][in] */ const BYTE *pValue,
  14800.             /* [in] */ WORD cbLength);
  14801.         
  14802.         HRESULT ( STDMETHODCALLTYPE *Preroll )( 
  14803.             IWMReaderAdvanced4 * This,
  14804.             /* [in] */ QWORD cnsStart,
  14805.             /* [in] */ QWORD cnsDuration,
  14806.             /* [in] */ float fRate);
  14807.         
  14808.         HRESULT ( STDMETHODCALLTYPE *SetLogClientID )( 
  14809.             IWMReaderAdvanced4 * This,
  14810.             /* [in] */ BOOL fLogClientID);
  14811.         
  14812.         HRESULT ( STDMETHODCALLTYPE *GetLogClientID )( 
  14813.             IWMReaderAdvanced4 * This,
  14814.             /* [out] */ BOOL *pfLogClientID);
  14815.         
  14816.         HRESULT ( STDMETHODCALLTYPE *StopBuffering )( 
  14817.             IWMReaderAdvanced4 * This);
  14818.         
  14819.         HRESULT ( STDMETHODCALLTYPE *OpenStream )( 
  14820.             IWMReaderAdvanced4 * This,
  14821.             /* [in] */ IStream *pStream,
  14822.             /* [in] */ IWMReaderCallback *pCallback,
  14823.             /* [in] */ void *pvContext);
  14824.         
  14825.         HRESULT ( STDMETHODCALLTYPE *StopNetStreaming )( 
  14826.             IWMReaderAdvanced4 * This);
  14827.         
  14828.         HRESULT ( STDMETHODCALLTYPE *StartAtPosition )( 
  14829.             IWMReaderAdvanced4 * This,
  14830.             /* [in] */ WORD wStreamNum,
  14831.             /* [in] */ void *pvOffsetStart,
  14832.             /* [in] */ void *pvDuration,
  14833.             /* [in] */ WMT_OFFSET_FORMAT dwOffsetFormat,
  14834.             /* [in] */ float fRate,
  14835.             /* [in] */ void *pvContext);
  14836.         
  14837.         HRESULT ( STDMETHODCALLTYPE *GetLanguageCount )( 
  14838.             IWMReaderAdvanced4 * This,
  14839.             /* [in] */ DWORD dwOutputNum,
  14840.             /* [out] */ WORD *pwLanguageCount);
  14841.         
  14842.         HRESULT ( STDMETHODCALLTYPE *GetLanguage )( 
  14843.             IWMReaderAdvanced4 * This,
  14844.             /* [in] */ DWORD dwOutputNum,
  14845.             /* [in] */ WORD wLanguage,
  14846.             /* [size_is][out] */ WCHAR *pwszLanguageString,
  14847.             /* [out][in] */ WORD *pcchLanguageStringLength);
  14848.         
  14849.         HRESULT ( STDMETHODCALLTYPE *GetMaxSpeedFactor )( 
  14850.             IWMReaderAdvanced4 * This,
  14851.             /* [out] */ double *pdblFactor);
  14852.         
  14853.         HRESULT ( STDMETHODCALLTYPE *IsUsingFastCache )( 
  14854.             IWMReaderAdvanced4 * This,
  14855.             /* [out] */ BOOL *pfUsingFastCache);
  14856.         
  14857.         HRESULT ( STDMETHODCALLTYPE *AddLogParam )( 
  14858.             IWMReaderAdvanced4 * This,
  14859.             /* [in] */ LPCWSTR wszNameSpace,
  14860.             /* [in] */ LPCWSTR wszName,
  14861.             /* [in] */ LPCWSTR wszValue);
  14862.         
  14863.         HRESULT ( STDMETHODCALLTYPE *SendLogParams )( 
  14864.             IWMReaderAdvanced4 * This);
  14865.         
  14866.         HRESULT ( STDMETHODCALLTYPE *CanSaveFileAs )( 
  14867.             IWMReaderAdvanced4 * This,
  14868.             /* [out] */ BOOL *pfCanSave);
  14869.         
  14870.         HRESULT ( STDMETHODCALLTYPE *CancelSaveFileAs )( 
  14871.             IWMReaderAdvanced4 * This);
  14872.         
  14873.         HRESULT ( STDMETHODCALLTYPE *GetURL )( 
  14874.             IWMReaderAdvanced4 * This,
  14875.             /* [size_is][out] */ WCHAR *pwszURL,
  14876.             /* [out][in] */ DWORD *pcchURL);
  14877.         
  14878.         END_INTERFACE
  14879.     } IWMReaderAdvanced4Vtbl;
  14880.  
  14881.     interface IWMReaderAdvanced4
  14882.     {
  14883.         CONST_VTBL struct IWMReaderAdvanced4Vtbl *lpVtbl;
  14884.     };
  14885.  
  14886.     
  14887.  
  14888. #ifdef COBJMACROS
  14889.  
  14890.  
  14891. #define IWMReaderAdvanced4_QueryInterface(This,riid,ppvObject)    \
  14892.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  14893.  
  14894. #define IWMReaderAdvanced4_AddRef(This)    \
  14895.     (This)->lpVtbl -> AddRef(This)
  14896.  
  14897. #define IWMReaderAdvanced4_Release(This)    \
  14898.     (This)->lpVtbl -> Release(This)
  14899.  
  14900.  
  14901. #define IWMReaderAdvanced4_SetUserProvidedClock(This,fUserClock)    \
  14902.     (This)->lpVtbl -> SetUserProvidedClock(This,fUserClock)
  14903.  
  14904. #define IWMReaderAdvanced4_GetUserProvidedClock(This,pfUserClock)    \
  14905.     (This)->lpVtbl -> GetUserProvidedClock(This,pfUserClock)
  14906.  
  14907. #define IWMReaderAdvanced4_DeliverTime(This,cnsTime)    \
  14908.     (This)->lpVtbl -> DeliverTime(This,cnsTime)
  14909.  
  14910. #define IWMReaderAdvanced4_SetManualStreamSelection(This,fSelection)    \
  14911.     (This)->lpVtbl -> SetManualStreamSelection(This,fSelection)
  14912.  
  14913. #define IWMReaderAdvanced4_GetManualStreamSelection(This,pfSelection)    \
  14914.     (This)->lpVtbl -> GetManualStreamSelection(This,pfSelection)
  14915.  
  14916. #define IWMReaderAdvanced4_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)    \
  14917.     (This)->lpVtbl -> SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  14918.  
  14919. #define IWMReaderAdvanced4_GetStreamSelected(This,wStreamNum,pSelection)    \
  14920.     (This)->lpVtbl -> GetStreamSelected(This,wStreamNum,pSelection)
  14921.  
  14922. #define IWMReaderAdvanced4_SetReceiveSelectionCallbacks(This,fGetCallbacks)    \
  14923.     (This)->lpVtbl -> SetReceiveSelectionCallbacks(This,fGetCallbacks)
  14924.  
  14925. #define IWMReaderAdvanced4_GetReceiveSelectionCallbacks(This,pfGetCallbacks)    \
  14926.     (This)->lpVtbl -> GetReceiveSelectionCallbacks(This,pfGetCallbacks)
  14927.  
  14928. #define IWMReaderAdvanced4_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)    \
  14929.     (This)->lpVtbl -> SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
  14930.  
  14931. #define IWMReaderAdvanced4_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)    \
  14932.     (This)->lpVtbl -> GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
  14933.  
  14934. #define IWMReaderAdvanced4_SetAllocateForOutput(This,dwOutputNum,fAllocate)    \
  14935.     (This)->lpVtbl -> SetAllocateForOutput(This,dwOutputNum,fAllocate)
  14936.  
  14937. #define IWMReaderAdvanced4_GetAllocateForOutput(This,dwOutputNum,pfAllocate)    \
  14938.     (This)->lpVtbl -> GetAllocateForOutput(This,dwOutputNum,pfAllocate)
  14939.  
  14940. #define IWMReaderAdvanced4_SetAllocateForStream(This,wStreamNum,fAllocate)    \
  14941.     (This)->lpVtbl -> SetAllocateForStream(This,wStreamNum,fAllocate)
  14942.  
  14943. #define IWMReaderAdvanced4_GetAllocateForStream(This,dwSreamNum,pfAllocate)    \
  14944.     (This)->lpVtbl -> GetAllocateForStream(This,dwSreamNum,pfAllocate)
  14945.  
  14946. #define IWMReaderAdvanced4_GetStatistics(This,pStatistics)    \
  14947.     (This)->lpVtbl -> GetStatistics(This,pStatistics)
  14948.  
  14949. #define IWMReaderAdvanced4_SetClientInfo(This,pClientInfo)    \
  14950.     (This)->lpVtbl -> SetClientInfo(This,pClientInfo)
  14951.  
  14952. #define IWMReaderAdvanced4_GetMaxOutputSampleSize(This,dwOutput,pcbMax)    \
  14953.     (This)->lpVtbl -> GetMaxOutputSampleSize(This,dwOutput,pcbMax)
  14954.  
  14955. #define IWMReaderAdvanced4_GetMaxStreamSampleSize(This,wStream,pcbMax)    \
  14956.     (This)->lpVtbl -> GetMaxStreamSampleSize(This,wStream,pcbMax)
  14957.  
  14958. #define IWMReaderAdvanced4_NotifyLateDelivery(This,cnsLateness)    \
  14959.     (This)->lpVtbl -> NotifyLateDelivery(This,cnsLateness)
  14960.  
  14961.  
  14962. #define IWMReaderAdvanced4_SetPlayMode(This,Mode)    \
  14963.     (This)->lpVtbl -> SetPlayMode(This,Mode)
  14964.  
  14965. #define IWMReaderAdvanced4_GetPlayMode(This,pMode)    \
  14966.     (This)->lpVtbl -> GetPlayMode(This,pMode)
  14967.  
  14968. #define IWMReaderAdvanced4_GetBufferProgress(This,pdwPercent,pcnsBuffering)    \
  14969.     (This)->lpVtbl -> GetBufferProgress(This,pdwPercent,pcnsBuffering)
  14970.  
  14971. #define IWMReaderAdvanced4_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)    \
  14972.     (This)->lpVtbl -> GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
  14973.  
  14974. #define IWMReaderAdvanced4_GetSaveAsProgress(This,pdwPercent)    \
  14975.     (This)->lpVtbl -> GetSaveAsProgress(This,pdwPercent)
  14976.  
  14977. #define IWMReaderAdvanced4_SaveFileAs(This,pwszFilename)    \
  14978.     (This)->lpVtbl -> SaveFileAs(This,pwszFilename)
  14979.  
  14980. #define IWMReaderAdvanced4_GetProtocolName(This,pwszProtocol,pcchProtocol)    \
  14981.     (This)->lpVtbl -> GetProtocolName(This,pwszProtocol,pcchProtocol)
  14982.  
  14983. #define IWMReaderAdvanced4_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)    \
  14984.     (This)->lpVtbl -> StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
  14985.  
  14986. #define IWMReaderAdvanced4_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)    \
  14987.     (This)->lpVtbl -> GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
  14988.  
  14989. #define IWMReaderAdvanced4_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)    \
  14990.     (This)->lpVtbl -> SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
  14991.  
  14992. #define IWMReaderAdvanced4_Preroll(This,cnsStart,cnsDuration,fRate)    \
  14993.     (This)->lpVtbl -> Preroll(This,cnsStart,cnsDuration,fRate)
  14994.  
  14995. #define IWMReaderAdvanced4_SetLogClientID(This,fLogClientID)    \
  14996.     (This)->lpVtbl -> SetLogClientID(This,fLogClientID)
  14997.  
  14998. #define IWMReaderAdvanced4_GetLogClientID(This,pfLogClientID)    \
  14999.     (This)->lpVtbl -> GetLogClientID(This,pfLogClientID)
  15000.  
  15001. #define IWMReaderAdvanced4_StopBuffering(This)    \
  15002.     (This)->lpVtbl -> StopBuffering(This)
  15003.  
  15004. #define IWMReaderAdvanced4_OpenStream(This,pStream,pCallback,pvContext)    \
  15005.     (This)->lpVtbl -> OpenStream(This,pStream,pCallback,pvContext)
  15006.  
  15007.  
  15008. #define IWMReaderAdvanced4_StopNetStreaming(This)    \
  15009.     (This)->lpVtbl -> StopNetStreaming(This)
  15010.  
  15011. #define IWMReaderAdvanced4_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)    \
  15012.     (This)->lpVtbl -> StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
  15013.  
  15014.  
  15015. #define IWMReaderAdvanced4_GetLanguageCount(This,dwOutputNum,pwLanguageCount)    \
  15016.     (This)->lpVtbl -> GetLanguageCount(This,dwOutputNum,pwLanguageCount)
  15017.  
  15018. #define IWMReaderAdvanced4_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)    \
  15019.     (This)->lpVtbl -> GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)
  15020.  
  15021. #define IWMReaderAdvanced4_GetMaxSpeedFactor(This,pdblFactor)    \
  15022.     (This)->lpVtbl -> GetMaxSpeedFactor(This,pdblFactor)
  15023.  
  15024. #define IWMReaderAdvanced4_IsUsingFastCache(This,pfUsingFastCache)    \
  15025.     (This)->lpVtbl -> IsUsingFastCache(This,pfUsingFastCache)
  15026.  
  15027. #define IWMReaderAdvanced4_AddLogParam(This,wszNameSpace,wszName,wszValue)    \
  15028.     (This)->lpVtbl -> AddLogParam(This,wszNameSpace,wszName,wszValue)
  15029.  
  15030. #define IWMReaderAdvanced4_SendLogParams(This)    \
  15031.     (This)->lpVtbl -> SendLogParams(This)
  15032.  
  15033. #define IWMReaderAdvanced4_CanSaveFileAs(This,pfCanSave)    \
  15034.     (This)->lpVtbl -> CanSaveFileAs(This,pfCanSave)
  15035.  
  15036. #define IWMReaderAdvanced4_CancelSaveFileAs(This)    \
  15037.     (This)->lpVtbl -> CancelSaveFileAs(This)
  15038.  
  15039. #define IWMReaderAdvanced4_GetURL(This,pwszURL,pcchURL)    \
  15040.     (This)->lpVtbl -> GetURL(This,pwszURL,pcchURL)
  15041.  
  15042. #endif /* COBJMACROS */
  15043.  
  15044.  
  15045. #endif     /* C style interface */
  15046.  
  15047.  
  15048.  
  15049. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_GetLanguageCount_Proxy( 
  15050.     IWMReaderAdvanced4 * This,
  15051.     /* [in] */ DWORD dwOutputNum,
  15052.     /* [out] */ WORD *pwLanguageCount);
  15053.  
  15054.  
  15055. void __RPC_STUB IWMReaderAdvanced4_GetLanguageCount_Stub(
  15056.     IRpcStubBuffer *This,
  15057.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15058.     PRPC_MESSAGE _pRpcMessage,
  15059.     DWORD *_pdwStubPhase);
  15060.  
  15061.  
  15062. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_GetLanguage_Proxy( 
  15063.     IWMReaderAdvanced4 * This,
  15064.     /* [in] */ DWORD dwOutputNum,
  15065.     /* [in] */ WORD wLanguage,
  15066.     /* [size_is][out] */ WCHAR *pwszLanguageString,
  15067.     /* [out][in] */ WORD *pcchLanguageStringLength);
  15068.  
  15069.  
  15070. void __RPC_STUB IWMReaderAdvanced4_GetLanguage_Stub(
  15071.     IRpcStubBuffer *This,
  15072.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15073.     PRPC_MESSAGE _pRpcMessage,
  15074.     DWORD *_pdwStubPhase);
  15075.  
  15076.  
  15077. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_GetMaxSpeedFactor_Proxy( 
  15078.     IWMReaderAdvanced4 * This,
  15079.     /* [out] */ double *pdblFactor);
  15080.  
  15081.  
  15082. void __RPC_STUB IWMReaderAdvanced4_GetMaxSpeedFactor_Stub(
  15083.     IRpcStubBuffer *This,
  15084.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15085.     PRPC_MESSAGE _pRpcMessage,
  15086.     DWORD *_pdwStubPhase);
  15087.  
  15088.  
  15089. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_IsUsingFastCache_Proxy( 
  15090.     IWMReaderAdvanced4 * This,
  15091.     /* [out] */ BOOL *pfUsingFastCache);
  15092.  
  15093.  
  15094. void __RPC_STUB IWMReaderAdvanced4_IsUsingFastCache_Stub(
  15095.     IRpcStubBuffer *This,
  15096.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15097.     PRPC_MESSAGE _pRpcMessage,
  15098.     DWORD *_pdwStubPhase);
  15099.  
  15100.  
  15101. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_AddLogParam_Proxy( 
  15102.     IWMReaderAdvanced4 * This,
  15103.     /* [in] */ LPCWSTR wszNameSpace,
  15104.     /* [in] */ LPCWSTR wszName,
  15105.     /* [in] */ LPCWSTR wszValue);
  15106.  
  15107.  
  15108. void __RPC_STUB IWMReaderAdvanced4_AddLogParam_Stub(
  15109.     IRpcStubBuffer *This,
  15110.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15111.     PRPC_MESSAGE _pRpcMessage,
  15112.     DWORD *_pdwStubPhase);
  15113.  
  15114.  
  15115. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_SendLogParams_Proxy( 
  15116.     IWMReaderAdvanced4 * This);
  15117.  
  15118.  
  15119. void __RPC_STUB IWMReaderAdvanced4_SendLogParams_Stub(
  15120.     IRpcStubBuffer *This,
  15121.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15122.     PRPC_MESSAGE _pRpcMessage,
  15123.     DWORD *_pdwStubPhase);
  15124.  
  15125.  
  15126. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_CanSaveFileAs_Proxy( 
  15127.     IWMReaderAdvanced4 * This,
  15128.     /* [out] */ BOOL *pfCanSave);
  15129.  
  15130.  
  15131. void __RPC_STUB IWMReaderAdvanced4_CanSaveFileAs_Stub(
  15132.     IRpcStubBuffer *This,
  15133.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15134.     PRPC_MESSAGE _pRpcMessage,
  15135.     DWORD *_pdwStubPhase);
  15136.  
  15137.  
  15138. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_CancelSaveFileAs_Proxy( 
  15139.     IWMReaderAdvanced4 * This);
  15140.  
  15141.  
  15142. void __RPC_STUB IWMReaderAdvanced4_CancelSaveFileAs_Stub(
  15143.     IRpcStubBuffer *This,
  15144.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15145.     PRPC_MESSAGE _pRpcMessage,
  15146.     DWORD *_pdwStubPhase);
  15147.  
  15148.  
  15149. HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_GetURL_Proxy( 
  15150.     IWMReaderAdvanced4 * This,
  15151.     /* [size_is][out] */ WCHAR *pwszURL,
  15152.     /* [out][in] */ DWORD *pcchURL);
  15153.  
  15154.  
  15155. void __RPC_STUB IWMReaderAdvanced4_GetURL_Stub(
  15156.     IRpcStubBuffer *This,
  15157.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15158.     PRPC_MESSAGE _pRpcMessage,
  15159.     DWORD *_pdwStubPhase);
  15160.  
  15161.  
  15162.  
  15163. #endif     /* __IWMReaderAdvanced4_INTERFACE_DEFINED__ */
  15164.  
  15165.  
  15166. #ifndef __IWMReaderAllocatorEx_INTERFACE_DEFINED__
  15167. #define __IWMReaderAllocatorEx_INTERFACE_DEFINED__
  15168.  
  15169. /* interface IWMReaderAllocatorEx */
  15170. /* [local][unique][helpstring][uuid][object] */ 
  15171.  
  15172.  
  15173. EXTERN_C const IID IID_IWMReaderAllocatorEx;
  15174.  
  15175. #if defined(__cplusplus) && !defined(CINTERFACE)
  15176.     
  15177.     MIDL_INTERFACE("9F762FA7-A22E-428d-93C9-AC82F3AAFE5A")
  15178.     IWMReaderAllocatorEx : public IUnknown
  15179.     {
  15180.     public:
  15181.         virtual HRESULT STDMETHODCALLTYPE AllocateForStreamEx( 
  15182.             /* [in] */ WORD wStreamNum,
  15183.             /* [in] */ DWORD cbBuffer,
  15184.             /* [out] */ INSSBuffer **ppBuffer,
  15185.             /* [in] */ DWORD dwFlags,
  15186.             /* [in] */ QWORD cnsSampleTime,
  15187.             /* [in] */ QWORD cnsSampleDuration,
  15188.             /* [in] */ void *pvContext) = 0;
  15189.         
  15190.         virtual HRESULT STDMETHODCALLTYPE AllocateForOutputEx( 
  15191.             /* [in] */ DWORD dwOutputNum,
  15192.             /* [in] */ DWORD cbBuffer,
  15193.             /* [out] */ INSSBuffer **ppBuffer,
  15194.             /* [in] */ DWORD dwFlags,
  15195.             /* [in] */ QWORD cnsSampleTime,
  15196.             /* [in] */ QWORD cnsSampleDuration,
  15197.             /* [in] */ void *pvContext) = 0;
  15198.         
  15199.     };
  15200.     
  15201. #else     /* C style interface */
  15202.  
  15203.     typedef struct IWMReaderAllocatorExVtbl
  15204.     {
  15205.         BEGIN_INTERFACE
  15206.         
  15207.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  15208.             IWMReaderAllocatorEx * This,
  15209.             /* [in] */ REFIID riid,
  15210.             /* [iid_is][out] */ void **ppvObject);
  15211.         
  15212.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  15213.             IWMReaderAllocatorEx * This);
  15214.         
  15215.         ULONG ( STDMETHODCALLTYPE *Release )( 
  15216.             IWMReaderAllocatorEx * This);
  15217.         
  15218.         HRESULT ( STDMETHODCALLTYPE *AllocateForStreamEx )( 
  15219.             IWMReaderAllocatorEx * This,
  15220.             /* [in] */ WORD wStreamNum,
  15221.             /* [in] */ DWORD cbBuffer,
  15222.             /* [out] */ INSSBuffer **ppBuffer,
  15223.             /* [in] */ DWORD dwFlags,
  15224.             /* [in] */ QWORD cnsSampleTime,
  15225.             /* [in] */ QWORD cnsSampleDuration,
  15226.             /* [in] */ void *pvContext);
  15227.         
  15228.         HRESULT ( STDMETHODCALLTYPE *AllocateForOutputEx )( 
  15229.             IWMReaderAllocatorEx * This,
  15230.             /* [in] */ DWORD dwOutputNum,
  15231.             /* [in] */ DWORD cbBuffer,
  15232.             /* [out] */ INSSBuffer **ppBuffer,
  15233.             /* [in] */ DWORD dwFlags,
  15234.             /* [in] */ QWORD cnsSampleTime,
  15235.             /* [in] */ QWORD cnsSampleDuration,
  15236.             /* [in] */ void *pvContext);
  15237.         
  15238.         END_INTERFACE
  15239.     } IWMReaderAllocatorExVtbl;
  15240.  
  15241.     interface IWMReaderAllocatorEx
  15242.     {
  15243.         CONST_VTBL struct IWMReaderAllocatorExVtbl *lpVtbl;
  15244.     };
  15245.  
  15246.     
  15247.  
  15248. #ifdef COBJMACROS
  15249.  
  15250.  
  15251. #define IWMReaderAllocatorEx_QueryInterface(This,riid,ppvObject)    \
  15252.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  15253.  
  15254. #define IWMReaderAllocatorEx_AddRef(This)    \
  15255.     (This)->lpVtbl -> AddRef(This)
  15256.  
  15257. #define IWMReaderAllocatorEx_Release(This)    \
  15258.     (This)->lpVtbl -> Release(This)
  15259.  
  15260.  
  15261. #define IWMReaderAllocatorEx_AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext)    \
  15262.     (This)->lpVtbl -> AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext)
  15263.  
  15264. #define IWMReaderAllocatorEx_AllocateForOutputEx(This,dwOutputNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext)    \
  15265.     (This)->lpVtbl -> AllocateForOutputEx(This,dwOutputNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext)
  15266.  
  15267. #endif /* COBJMACROS */
  15268.  
  15269.  
  15270. #endif     /* C style interface */
  15271.  
  15272.  
  15273.  
  15274. HRESULT STDMETHODCALLTYPE IWMReaderAllocatorEx_AllocateForStreamEx_Proxy( 
  15275.     IWMReaderAllocatorEx * This,
  15276.     /* [in] */ WORD wStreamNum,
  15277.     /* [in] */ DWORD cbBuffer,
  15278.     /* [out] */ INSSBuffer **ppBuffer,
  15279.     /* [in] */ DWORD dwFlags,
  15280.     /* [in] */ QWORD cnsSampleTime,
  15281.     /* [in] */ QWORD cnsSampleDuration,
  15282.     /* [in] */ void *pvContext);
  15283.  
  15284.  
  15285. void __RPC_STUB IWMReaderAllocatorEx_AllocateForStreamEx_Stub(
  15286.     IRpcStubBuffer *This,
  15287.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15288.     PRPC_MESSAGE _pRpcMessage,
  15289.     DWORD *_pdwStubPhase);
  15290.  
  15291.  
  15292. HRESULT STDMETHODCALLTYPE IWMReaderAllocatorEx_AllocateForOutputEx_Proxy( 
  15293.     IWMReaderAllocatorEx * This,
  15294.     /* [in] */ DWORD dwOutputNum,
  15295.     /* [in] */ DWORD cbBuffer,
  15296.     /* [out] */ INSSBuffer **ppBuffer,
  15297.     /* [in] */ DWORD dwFlags,
  15298.     /* [in] */ QWORD cnsSampleTime,
  15299.     /* [in] */ QWORD cnsSampleDuration,
  15300.     /* [in] */ void *pvContext);
  15301.  
  15302.  
  15303. void __RPC_STUB IWMReaderAllocatorEx_AllocateForOutputEx_Stub(
  15304.     IRpcStubBuffer *This,
  15305.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15306.     PRPC_MESSAGE _pRpcMessage,
  15307.     DWORD *_pdwStubPhase);
  15308.  
  15309.  
  15310.  
  15311. #endif     /* __IWMReaderAllocatorEx_INTERFACE_DEFINED__ */
  15312.  
  15313.  
  15314. #ifndef __IWMReaderTypeNegotiation_INTERFACE_DEFINED__
  15315. #define __IWMReaderTypeNegotiation_INTERFACE_DEFINED__
  15316.  
  15317. /* interface IWMReaderTypeNegotiation */
  15318. /* [local][unique][helpstring][uuid][object] */ 
  15319.  
  15320.  
  15321. EXTERN_C const IID IID_IWMReaderTypeNegotiation;
  15322.  
  15323. #if defined(__cplusplus) && !defined(CINTERFACE)
  15324.     
  15325.     MIDL_INTERFACE("FDBE5592-81A1-41ea-93BD-735CAD1ADC05")
  15326.     IWMReaderTypeNegotiation : public IUnknown
  15327.     {
  15328.     public:
  15329.         virtual HRESULT STDMETHODCALLTYPE TryOutputProps( 
  15330.             /* [in] */ DWORD dwOutputNum,
  15331.             /* [in] */ IWMOutputMediaProps *pOutput) = 0;
  15332.         
  15333.     };
  15334.     
  15335. #else     /* C style interface */
  15336.  
  15337.     typedef struct IWMReaderTypeNegotiationVtbl
  15338.     {
  15339.         BEGIN_INTERFACE
  15340.         
  15341.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  15342.             IWMReaderTypeNegotiation * This,
  15343.             /* [in] */ REFIID riid,
  15344.             /* [iid_is][out] */ void **ppvObject);
  15345.         
  15346.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  15347.             IWMReaderTypeNegotiation * This);
  15348.         
  15349.         ULONG ( STDMETHODCALLTYPE *Release )( 
  15350.             IWMReaderTypeNegotiation * This);
  15351.         
  15352.         HRESULT ( STDMETHODCALLTYPE *TryOutputProps )( 
  15353.             IWMReaderTypeNegotiation * This,
  15354.             /* [in] */ DWORD dwOutputNum,
  15355.             /* [in] */ IWMOutputMediaProps *pOutput);
  15356.         
  15357.         END_INTERFACE
  15358.     } IWMReaderTypeNegotiationVtbl;
  15359.  
  15360.     interface IWMReaderTypeNegotiation
  15361.     {
  15362.         CONST_VTBL struct IWMReaderTypeNegotiationVtbl *lpVtbl;
  15363.     };
  15364.  
  15365.     
  15366.  
  15367. #ifdef COBJMACROS
  15368.  
  15369.  
  15370. #define IWMReaderTypeNegotiation_QueryInterface(This,riid,ppvObject)    \
  15371.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  15372.  
  15373. #define IWMReaderTypeNegotiation_AddRef(This)    \
  15374.     (This)->lpVtbl -> AddRef(This)
  15375.  
  15376. #define IWMReaderTypeNegotiation_Release(This)    \
  15377.     (This)->lpVtbl -> Release(This)
  15378.  
  15379.  
  15380. #define IWMReaderTypeNegotiation_TryOutputProps(This,dwOutputNum,pOutput)    \
  15381.     (This)->lpVtbl -> TryOutputProps(This,dwOutputNum,pOutput)
  15382.  
  15383. #endif /* COBJMACROS */
  15384.  
  15385.  
  15386. #endif     /* C style interface */
  15387.  
  15388.  
  15389.  
  15390. HRESULT STDMETHODCALLTYPE IWMReaderTypeNegotiation_TryOutputProps_Proxy( 
  15391.     IWMReaderTypeNegotiation * This,
  15392.     /* [in] */ DWORD dwOutputNum,
  15393.     /* [in] */ IWMOutputMediaProps *pOutput);
  15394.  
  15395.  
  15396. void __RPC_STUB IWMReaderTypeNegotiation_TryOutputProps_Stub(
  15397.     IRpcStubBuffer *This,
  15398.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15399.     PRPC_MESSAGE _pRpcMessage,
  15400.     DWORD *_pdwStubPhase);
  15401.  
  15402.  
  15403.  
  15404. #endif     /* __IWMReaderTypeNegotiation_INTERFACE_DEFINED__ */
  15405.  
  15406.  
  15407. #ifndef __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__
  15408. #define __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__
  15409.  
  15410. /* interface IWMReaderCallbackAdvanced */
  15411. /* [local][unique][helpstring][uuid][object] */ 
  15412.  
  15413.  
  15414. EXTERN_C const IID IID_IWMReaderCallbackAdvanced;
  15415.  
  15416. #if defined(__cplusplus) && !defined(CINTERFACE)
  15417.     
  15418.     MIDL_INTERFACE("96406BEB-2B2B-11d3-B36B-00C04F6108FF")
  15419.     IWMReaderCallbackAdvanced : public IUnknown
  15420.     {
  15421.     public:
  15422.         virtual HRESULT STDMETHODCALLTYPE OnStreamSample( 
  15423.             /* [in] */ WORD wStreamNum,
  15424.             /* [in] */ QWORD cnsSampleTime,
  15425.             /* [in] */ QWORD cnsSampleDuration,
  15426.             /* [in] */ DWORD dwFlags,
  15427.             /* [in] */ INSSBuffer *pSample,
  15428.             /* [in] */ void *pvContext) = 0;
  15429.         
  15430.         virtual HRESULT STDMETHODCALLTYPE OnTime( 
  15431.             /* [in] */ QWORD cnsCurrentTime,
  15432.             /* [in] */ void *pvContext) = 0;
  15433.         
  15434.         virtual HRESULT STDMETHODCALLTYPE OnStreamSelection( 
  15435.             /* [in] */ WORD wStreamCount,
  15436.             /* [in] */ WORD *pStreamNumbers,
  15437.             /* [in] */ WMT_STREAM_SELECTION *pSelections,
  15438.             /* [in] */ void *pvContext) = 0;
  15439.         
  15440.         virtual HRESULT STDMETHODCALLTYPE OnOutputPropsChanged( 
  15441.             /* [in] */ DWORD dwOutputNum,
  15442.             /* [in] */ WM_MEDIA_TYPE *pMediaType,
  15443.             /* [in] */ void *pvContext) = 0;
  15444.         
  15445.         virtual HRESULT STDMETHODCALLTYPE AllocateForStream( 
  15446.             /* [in] */ WORD wStreamNum,
  15447.             /* [in] */ DWORD cbBuffer,
  15448.             /* [out] */ INSSBuffer **ppBuffer,
  15449.             /* [in] */ void *pvContext) = 0;
  15450.         
  15451.         virtual HRESULT STDMETHODCALLTYPE AllocateForOutput( 
  15452.             /* [in] */ DWORD dwOutputNum,
  15453.             /* [in] */ DWORD cbBuffer,
  15454.             /* [out] */ INSSBuffer **ppBuffer,
  15455.             /* [in] */ void *pvContext) = 0;
  15456.         
  15457.     };
  15458.     
  15459. #else     /* C style interface */
  15460.  
  15461.     typedef struct IWMReaderCallbackAdvancedVtbl
  15462.     {
  15463.         BEGIN_INTERFACE
  15464.         
  15465.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  15466.             IWMReaderCallbackAdvanced * This,
  15467.             /* [in] */ REFIID riid,
  15468.             /* [iid_is][out] */ void **ppvObject);
  15469.         
  15470.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  15471.             IWMReaderCallbackAdvanced * This);
  15472.         
  15473.         ULONG ( STDMETHODCALLTYPE *Release )( 
  15474.             IWMReaderCallbackAdvanced * This);
  15475.         
  15476.         HRESULT ( STDMETHODCALLTYPE *OnStreamSample )( 
  15477.             IWMReaderCallbackAdvanced * This,
  15478.             /* [in] */ WORD wStreamNum,
  15479.             /* [in] */ QWORD cnsSampleTime,
  15480.             /* [in] */ QWORD cnsSampleDuration,
  15481.             /* [in] */ DWORD dwFlags,
  15482.             /* [in] */ INSSBuffer *pSample,
  15483.             /* [in] */ void *pvContext);
  15484.         
  15485.         HRESULT ( STDMETHODCALLTYPE *OnTime )( 
  15486.             IWMReaderCallbackAdvanced * This,
  15487.             /* [in] */ QWORD cnsCurrentTime,
  15488.             /* [in] */ void *pvContext);
  15489.         
  15490.         HRESULT ( STDMETHODCALLTYPE *OnStreamSelection )( 
  15491.             IWMReaderCallbackAdvanced * This,
  15492.             /* [in] */ WORD wStreamCount,
  15493.             /* [in] */ WORD *pStreamNumbers,
  15494.             /* [in] */ WMT_STREAM_SELECTION *pSelections,
  15495.             /* [in] */ void *pvContext);
  15496.         
  15497.         HRESULT ( STDMETHODCALLTYPE *OnOutputPropsChanged )( 
  15498.             IWMReaderCallbackAdvanced * This,
  15499.             /* [in] */ DWORD dwOutputNum,
  15500.             /* [in] */ WM_MEDIA_TYPE *pMediaType,
  15501.             /* [in] */ void *pvContext);
  15502.         
  15503.         HRESULT ( STDMETHODCALLTYPE *AllocateForStream )( 
  15504.             IWMReaderCallbackAdvanced * This,
  15505.             /* [in] */ WORD wStreamNum,
  15506.             /* [in] */ DWORD cbBuffer,
  15507.             /* [out] */ INSSBuffer **ppBuffer,
  15508.             /* [in] */ void *pvContext);
  15509.         
  15510.         HRESULT ( STDMETHODCALLTYPE *AllocateForOutput )( 
  15511.             IWMReaderCallbackAdvanced * This,
  15512.             /* [in] */ DWORD dwOutputNum,
  15513.             /* [in] */ DWORD cbBuffer,
  15514.             /* [out] */ INSSBuffer **ppBuffer,
  15515.             /* [in] */ void *pvContext);
  15516.         
  15517.         END_INTERFACE
  15518.     } IWMReaderCallbackAdvancedVtbl;
  15519.  
  15520.     interface IWMReaderCallbackAdvanced
  15521.     {
  15522.         CONST_VTBL struct IWMReaderCallbackAdvancedVtbl *lpVtbl;
  15523.     };
  15524.  
  15525.     
  15526.  
  15527. #ifdef COBJMACROS
  15528.  
  15529.  
  15530. #define IWMReaderCallbackAdvanced_QueryInterface(This,riid,ppvObject)    \
  15531.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  15532.  
  15533. #define IWMReaderCallbackAdvanced_AddRef(This)    \
  15534.     (This)->lpVtbl -> AddRef(This)
  15535.  
  15536. #define IWMReaderCallbackAdvanced_Release(This)    \
  15537.     (This)->lpVtbl -> Release(This)
  15538.  
  15539.  
  15540. #define IWMReaderCallbackAdvanced_OnStreamSample(This,wStreamNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)    \
  15541.     (This)->lpVtbl -> OnStreamSample(This,wStreamNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)
  15542.  
  15543. #define IWMReaderCallbackAdvanced_OnTime(This,cnsCurrentTime,pvContext)    \
  15544.     (This)->lpVtbl -> OnTime(This,cnsCurrentTime,pvContext)
  15545.  
  15546. #define IWMReaderCallbackAdvanced_OnStreamSelection(This,wStreamCount,pStreamNumbers,pSelections,pvContext)    \
  15547.     (This)->lpVtbl -> OnStreamSelection(This,wStreamCount,pStreamNumbers,pSelections,pvContext)
  15548.  
  15549. #define IWMReaderCallbackAdvanced_OnOutputPropsChanged(This,dwOutputNum,pMediaType,pvContext)    \
  15550.     (This)->lpVtbl -> OnOutputPropsChanged(This,dwOutputNum,pMediaType,pvContext)
  15551.  
  15552. #define IWMReaderCallbackAdvanced_AllocateForStream(This,wStreamNum,cbBuffer,ppBuffer,pvContext)    \
  15553.     (This)->lpVtbl -> AllocateForStream(This,wStreamNum,cbBuffer,ppBuffer,pvContext)
  15554.  
  15555. #define IWMReaderCallbackAdvanced_AllocateForOutput(This,dwOutputNum,cbBuffer,ppBuffer,pvContext)    \
  15556.     (This)->lpVtbl -> AllocateForOutput(This,dwOutputNum,cbBuffer,ppBuffer,pvContext)
  15557.  
  15558. #endif /* COBJMACROS */
  15559.  
  15560.  
  15561. #endif     /* C style interface */
  15562.  
  15563.  
  15564.  
  15565. HRESULT STDMETHODCALLTYPE IWMReaderCallbackAdvanced_OnStreamSample_Proxy( 
  15566.     IWMReaderCallbackAdvanced * This,
  15567.     /* [in] */ WORD wStreamNum,
  15568.     /* [in] */ QWORD cnsSampleTime,
  15569.     /* [in] */ QWORD cnsSampleDuration,
  15570.     /* [in] */ DWORD dwFlags,
  15571.     /* [in] */ INSSBuffer *pSample,
  15572.     /* [in] */ void *pvContext);
  15573.  
  15574.  
  15575. void __RPC_STUB IWMReaderCallbackAdvanced_OnStreamSample_Stub(
  15576.     IRpcStubBuffer *This,
  15577.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15578.     PRPC_MESSAGE _pRpcMessage,
  15579.     DWORD *_pdwStubPhase);
  15580.  
  15581.  
  15582. HRESULT STDMETHODCALLTYPE IWMReaderCallbackAdvanced_OnTime_Proxy( 
  15583.     IWMReaderCallbackAdvanced * This,
  15584.     /* [in] */ QWORD cnsCurrentTime,
  15585.     /* [in] */ void *pvContext);
  15586.  
  15587.  
  15588. void __RPC_STUB IWMReaderCallbackAdvanced_OnTime_Stub(
  15589.     IRpcStubBuffer *This,
  15590.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15591.     PRPC_MESSAGE _pRpcMessage,
  15592.     DWORD *_pdwStubPhase);
  15593.  
  15594.  
  15595. HRESULT STDMETHODCALLTYPE IWMReaderCallbackAdvanced_OnStreamSelection_Proxy( 
  15596.     IWMReaderCallbackAdvanced * This,
  15597.     /* [in] */ WORD wStreamCount,
  15598.     /* [in] */ WORD *pStreamNumbers,
  15599.     /* [in] */ WMT_STREAM_SELECTION *pSelections,
  15600.     /* [in] */ void *pvContext);
  15601.  
  15602.  
  15603. void __RPC_STUB IWMReaderCallbackAdvanced_OnStreamSelection_Stub(
  15604.     IRpcStubBuffer *This,
  15605.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15606.     PRPC_MESSAGE _pRpcMessage,
  15607.     DWORD *_pdwStubPhase);
  15608.  
  15609.  
  15610. HRESULT STDMETHODCALLTYPE IWMReaderCallbackAdvanced_OnOutputPropsChanged_Proxy( 
  15611.     IWMReaderCallbackAdvanced * This,
  15612.     /* [in] */ DWORD dwOutputNum,
  15613.     /* [in] */ WM_MEDIA_TYPE *pMediaType,
  15614.     /* [in] */ void *pvContext);
  15615.  
  15616.  
  15617. void __RPC_STUB IWMReaderCallbackAdvanced_OnOutputPropsChanged_Stub(
  15618.     IRpcStubBuffer *This,
  15619.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15620.     PRPC_MESSAGE _pRpcMessage,
  15621.     DWORD *_pdwStubPhase);
  15622.  
  15623.  
  15624. HRESULT STDMETHODCALLTYPE IWMReaderCallbackAdvanced_AllocateForStream_Proxy( 
  15625.     IWMReaderCallbackAdvanced * This,
  15626.     /* [in] */ WORD wStreamNum,
  15627.     /* [in] */ DWORD cbBuffer,
  15628.     /* [out] */ INSSBuffer **ppBuffer,
  15629.     /* [in] */ void *pvContext);
  15630.  
  15631.  
  15632. void __RPC_STUB IWMReaderCallbackAdvanced_AllocateForStream_Stub(
  15633.     IRpcStubBuffer *This,
  15634.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15635.     PRPC_MESSAGE _pRpcMessage,
  15636.     DWORD *_pdwStubPhase);
  15637.  
  15638.  
  15639. HRESULT STDMETHODCALLTYPE IWMReaderCallbackAdvanced_AllocateForOutput_Proxy( 
  15640.     IWMReaderCallbackAdvanced * This,
  15641.     /* [in] */ DWORD dwOutputNum,
  15642.     /* [in] */ DWORD cbBuffer,
  15643.     /* [out] */ INSSBuffer **ppBuffer,
  15644.     /* [in] */ void *pvContext);
  15645.  
  15646.  
  15647. void __RPC_STUB IWMReaderCallbackAdvanced_AllocateForOutput_Stub(
  15648.     IRpcStubBuffer *This,
  15649.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15650.     PRPC_MESSAGE _pRpcMessage,
  15651.     DWORD *_pdwStubPhase);
  15652.  
  15653.  
  15654.  
  15655. #endif     /* __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__ */
  15656.  
  15657.  
  15658. #ifndef __IWMDRMReader_INTERFACE_DEFINED__
  15659. #define __IWMDRMReader_INTERFACE_DEFINED__
  15660.  
  15661. /* interface IWMDRMReader */
  15662. /* [local][unique][helpstring][uuid][object] */ 
  15663.  
  15664.  
  15665. EXTERN_C const IID IID_IWMDRMReader;
  15666.  
  15667. #if defined(__cplusplus) && !defined(CINTERFACE)
  15668.     
  15669.     MIDL_INTERFACE("D2827540-3EE7-432c-B14C-DC17F085D3B3")
  15670.     IWMDRMReader : public IUnknown
  15671.     {
  15672.     public:
  15673.         virtual HRESULT STDMETHODCALLTYPE AcquireLicense( 
  15674.             /* [in] */ DWORD dwFlags) = 0;
  15675.         
  15676.         virtual HRESULT STDMETHODCALLTYPE CancelLicenseAcquisition( void) = 0;
  15677.         
  15678.         virtual HRESULT STDMETHODCALLTYPE Individualize( 
  15679.             /* [in] */ DWORD dwFlags) = 0;
  15680.         
  15681.         virtual HRESULT STDMETHODCALLTYPE CancelIndividualization( void) = 0;
  15682.         
  15683.         virtual HRESULT STDMETHODCALLTYPE MonitorLicenseAcquisition( void) = 0;
  15684.         
  15685.         virtual HRESULT STDMETHODCALLTYPE CancelMonitorLicenseAcquisition( void) = 0;
  15686.         
  15687.         virtual HRESULT STDMETHODCALLTYPE SetDRMProperty( 
  15688.             /* [in] */ LPCWSTR pwstrName,
  15689.             /* [in] */ WMT_ATTR_DATATYPE dwType,
  15690.             /* [size_is][in] */ const BYTE *pValue,
  15691.             /* [in] */ WORD cbLength) = 0;
  15692.         
  15693.         virtual HRESULT STDMETHODCALLTYPE GetDRMProperty( 
  15694.             /* [in] */ LPCWSTR pwstrName,
  15695.             /* [out] */ WMT_ATTR_DATATYPE *pdwType,
  15696.             /* [size_is][out] */ BYTE *pValue,
  15697.             /* [out][in] */ WORD *pcbLength) = 0;
  15698.         
  15699.     };
  15700.     
  15701. #else     /* C style interface */
  15702.  
  15703.     typedef struct IWMDRMReaderVtbl
  15704.     {
  15705.         BEGIN_INTERFACE
  15706.         
  15707.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  15708.             IWMDRMReader * This,
  15709.             /* [in] */ REFIID riid,
  15710.             /* [iid_is][out] */ void **ppvObject);
  15711.         
  15712.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  15713.             IWMDRMReader * This);
  15714.         
  15715.         ULONG ( STDMETHODCALLTYPE *Release )( 
  15716.             IWMDRMReader * This);
  15717.         
  15718.         HRESULT ( STDMETHODCALLTYPE *AcquireLicense )( 
  15719.             IWMDRMReader * This,
  15720.             /* [in] */ DWORD dwFlags);
  15721.         
  15722.         HRESULT ( STDMETHODCALLTYPE *CancelLicenseAcquisition )( 
  15723.             IWMDRMReader * This);
  15724.         
  15725.         HRESULT ( STDMETHODCALLTYPE *Individualize )( 
  15726.             IWMDRMReader * This,
  15727.             /* [in] */ DWORD dwFlags);
  15728.         
  15729.         HRESULT ( STDMETHODCALLTYPE *CancelIndividualization )( 
  15730.             IWMDRMReader * This);
  15731.         
  15732.         HRESULT ( STDMETHODCALLTYPE *MonitorLicenseAcquisition )( 
  15733.             IWMDRMReader * This);
  15734.         
  15735.         HRESULT ( STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition )( 
  15736.             IWMDRMReader * This);
  15737.         
  15738.         HRESULT ( STDMETHODCALLTYPE *SetDRMProperty )( 
  15739.             IWMDRMReader * This,
  15740.             /* [in] */ LPCWSTR pwstrName,
  15741.             /* [in] */ WMT_ATTR_DATATYPE dwType,
  15742.             /* [size_is][in] */ const BYTE *pValue,
  15743.             /* [in] */ WORD cbLength);
  15744.         
  15745.         HRESULT ( STDMETHODCALLTYPE *GetDRMProperty )( 
  15746.             IWMDRMReader * This,
  15747.             /* [in] */ LPCWSTR pwstrName,
  15748.             /* [out] */ WMT_ATTR_DATATYPE *pdwType,
  15749.             /* [size_is][out] */ BYTE *pValue,
  15750.             /* [out][in] */ WORD *pcbLength);
  15751.         
  15752.         END_INTERFACE
  15753.     } IWMDRMReaderVtbl;
  15754.  
  15755.     interface IWMDRMReader
  15756.     {
  15757.         CONST_VTBL struct IWMDRMReaderVtbl *lpVtbl;
  15758.     };
  15759.  
  15760.     
  15761.  
  15762. #ifdef COBJMACROS
  15763.  
  15764.  
  15765. #define IWMDRMReader_QueryInterface(This,riid,ppvObject)    \
  15766.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  15767.  
  15768. #define IWMDRMReader_AddRef(This)    \
  15769.     (This)->lpVtbl -> AddRef(This)
  15770.  
  15771. #define IWMDRMReader_Release(This)    \
  15772.     (This)->lpVtbl -> Release(This)
  15773.  
  15774.  
  15775. #define IWMDRMReader_AcquireLicense(This,dwFlags)    \
  15776.     (This)->lpVtbl -> AcquireLicense(This,dwFlags)
  15777.  
  15778. #define IWMDRMReader_CancelLicenseAcquisition(This)    \
  15779.     (This)->lpVtbl -> CancelLicenseAcquisition(This)
  15780.  
  15781. #define IWMDRMReader_Individualize(This,dwFlags)    \
  15782.     (This)->lpVtbl -> Individualize(This,dwFlags)
  15783.  
  15784. #define IWMDRMReader_CancelIndividualization(This)    \
  15785.     (This)->lpVtbl -> CancelIndividualization(This)
  15786.  
  15787. #define IWMDRMReader_MonitorLicenseAcquisition(This)    \
  15788.     (This)->lpVtbl -> MonitorLicenseAcquisition(This)
  15789.  
  15790. #define IWMDRMReader_CancelMonitorLicenseAcquisition(This)    \
  15791.     (This)->lpVtbl -> CancelMonitorLicenseAcquisition(This)
  15792.  
  15793. #define IWMDRMReader_SetDRMProperty(This,pwstrName,dwType,pValue,cbLength)    \
  15794.     (This)->lpVtbl -> SetDRMProperty(This,pwstrName,dwType,pValue,cbLength)
  15795.  
  15796. #define IWMDRMReader_GetDRMProperty(This,pwstrName,pdwType,pValue,pcbLength)    \
  15797.     (This)->lpVtbl -> GetDRMProperty(This,pwstrName,pdwType,pValue,pcbLength)
  15798.  
  15799. #endif /* COBJMACROS */
  15800.  
  15801.  
  15802. #endif     /* C style interface */
  15803.  
  15804.  
  15805.  
  15806. HRESULT STDMETHODCALLTYPE IWMDRMReader_AcquireLicense_Proxy( 
  15807.     IWMDRMReader * This,
  15808.     /* [in] */ DWORD dwFlags);
  15809.  
  15810.  
  15811. void __RPC_STUB IWMDRMReader_AcquireLicense_Stub(
  15812.     IRpcStubBuffer *This,
  15813.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15814.     PRPC_MESSAGE _pRpcMessage,
  15815.     DWORD *_pdwStubPhase);
  15816.  
  15817.  
  15818. HRESULT STDMETHODCALLTYPE IWMDRMReader_CancelLicenseAcquisition_Proxy( 
  15819.     IWMDRMReader * This);
  15820.  
  15821.  
  15822. void __RPC_STUB IWMDRMReader_CancelLicenseAcquisition_Stub(
  15823.     IRpcStubBuffer *This,
  15824.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15825.     PRPC_MESSAGE _pRpcMessage,
  15826.     DWORD *_pdwStubPhase);
  15827.  
  15828.  
  15829. HRESULT STDMETHODCALLTYPE IWMDRMReader_Individualize_Proxy( 
  15830.     IWMDRMReader * This,
  15831.     /* [in] */ DWORD dwFlags);
  15832.  
  15833.  
  15834. void __RPC_STUB IWMDRMReader_Individualize_Stub(
  15835.     IRpcStubBuffer *This,
  15836.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15837.     PRPC_MESSAGE _pRpcMessage,
  15838.     DWORD *_pdwStubPhase);
  15839.  
  15840.  
  15841. HRESULT STDMETHODCALLTYPE IWMDRMReader_CancelIndividualization_Proxy( 
  15842.     IWMDRMReader * This);
  15843.  
  15844.  
  15845. void __RPC_STUB IWMDRMReader_CancelIndividualization_Stub(
  15846.     IRpcStubBuffer *This,
  15847.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15848.     PRPC_MESSAGE _pRpcMessage,
  15849.     DWORD *_pdwStubPhase);
  15850.  
  15851.  
  15852. HRESULT STDMETHODCALLTYPE IWMDRMReader_MonitorLicenseAcquisition_Proxy( 
  15853.     IWMDRMReader * This);
  15854.  
  15855.  
  15856. void __RPC_STUB IWMDRMReader_MonitorLicenseAcquisition_Stub(
  15857.     IRpcStubBuffer *This,
  15858.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15859.     PRPC_MESSAGE _pRpcMessage,
  15860.     DWORD *_pdwStubPhase);
  15861.  
  15862.  
  15863. HRESULT STDMETHODCALLTYPE IWMDRMReader_CancelMonitorLicenseAcquisition_Proxy( 
  15864.     IWMDRMReader * This);
  15865.  
  15866.  
  15867. void __RPC_STUB IWMDRMReader_CancelMonitorLicenseAcquisition_Stub(
  15868.     IRpcStubBuffer *This,
  15869.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15870.     PRPC_MESSAGE _pRpcMessage,
  15871.     DWORD *_pdwStubPhase);
  15872.  
  15873.  
  15874. HRESULT STDMETHODCALLTYPE IWMDRMReader_SetDRMProperty_Proxy( 
  15875.     IWMDRMReader * This,
  15876.     /* [in] */ LPCWSTR pwstrName,
  15877.     /* [in] */ WMT_ATTR_DATATYPE dwType,
  15878.     /* [size_is][in] */ const BYTE *pValue,
  15879.     /* [in] */ WORD cbLength);
  15880.  
  15881.  
  15882. void __RPC_STUB IWMDRMReader_SetDRMProperty_Stub(
  15883.     IRpcStubBuffer *This,
  15884.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15885.     PRPC_MESSAGE _pRpcMessage,
  15886.     DWORD *_pdwStubPhase);
  15887.  
  15888.  
  15889. HRESULT STDMETHODCALLTYPE IWMDRMReader_GetDRMProperty_Proxy( 
  15890.     IWMDRMReader * This,
  15891.     /* [in] */ LPCWSTR pwstrName,
  15892.     /* [out] */ WMT_ATTR_DATATYPE *pdwType,
  15893.     /* [size_is][out] */ BYTE *pValue,
  15894.     /* [out][in] */ WORD *pcbLength);
  15895.  
  15896.  
  15897. void __RPC_STUB IWMDRMReader_GetDRMProperty_Stub(
  15898.     IRpcStubBuffer *This,
  15899.     IRpcChannelBuffer *_pRpcChannelBuffer,
  15900.     PRPC_MESSAGE _pRpcMessage,
  15901.     DWORD *_pdwStubPhase);
  15902.  
  15903.  
  15904.  
  15905. #endif     /* __IWMDRMReader_INTERFACE_DEFINED__ */
  15906.  
  15907.  
  15908. #ifndef __IWMReaderNetworkConfig_INTERFACE_DEFINED__
  15909. #define __IWMReaderNetworkConfig_INTERFACE_DEFINED__
  15910.  
  15911. /* interface IWMReaderNetworkConfig */
  15912. /* [local][unique][helpstring][uuid][object] */ 
  15913.  
  15914.  
  15915. EXTERN_C const IID IID_IWMReaderNetworkConfig;
  15916.  
  15917. #if defined(__cplusplus) && !defined(CINTERFACE)
  15918.     
  15919.     MIDL_INTERFACE("96406BEC-2B2B-11d3-B36B-00C04F6108FF")
  15920.     IWMReaderNetworkConfig : public IUnknown
  15921.     {
  15922.     public:
  15923.         virtual HRESULT STDMETHODCALLTYPE GetBufferingTime( 
  15924.             /* [out] */ QWORD *pcnsBufferingTime) = 0;
  15925.         
  15926.         virtual HRESULT STDMETHODCALLTYPE SetBufferingTime( 
  15927.             /* [in] */ QWORD cnsBufferingTime) = 0;
  15928.         
  15929.         virtual HRESULT STDMETHODCALLTYPE GetUDPPortRanges( 
  15930.             /* [size_is][out] */ WM_PORT_NUMBER_RANGE *pRangeArray,
  15931.             /* [out][in] */ DWORD *pcRanges) = 0;
  15932.         
  15933.         virtual HRESULT STDMETHODCALLTYPE SetUDPPortRanges( 
  15934.             /* [size_is][in] */ WM_PORT_NUMBER_RANGE *pRangeArray,
  15935.             /* [in] */ DWORD cRanges) = 0;
  15936.         
  15937.         virtual HRESULT STDMETHODCALLTYPE GetProxySettings( 
  15938.             /* [in] */ LPCWSTR pwszProtocol,
  15939.             /* [out] */ WMT_PROXY_SETTINGS *pProxySetting) = 0;
  15940.         
  15941.         virtual HRESULT STDMETHODCALLTYPE SetProxySettings( 
  15942.             /* [in] */ LPCWSTR pwszProtocol,
  15943.             /* [in] */ WMT_PROXY_SETTINGS ProxySetting) = 0;
  15944.         
  15945.         virtual HRESULT STDMETHODCALLTYPE GetProxyHostName( 
  15946.             /* [in] */ LPCWSTR pwszProtocol,
  15947.             /* [size_is][out] */ WCHAR *pwszHostName,
  15948.             /* [out][in] */ DWORD *pcchHostName) = 0;
  15949.         
  15950.         virtual HRESULT STDMETHODCALLTYPE SetProxyHostName( 
  15951.             /* [in] */ LPCWSTR pwszProtocol,
  15952.             /* [in] */ LPCWSTR pwszHostName) = 0;
  15953.         
  15954.         virtual HRESULT STDMETHODCALLTYPE GetProxyPort( 
  15955.             /* [in] */ LPCWSTR pwszProtocol,
  15956.             /* [out] */ DWORD *pdwPort) = 0;
  15957.         
  15958.         virtual HRESULT STDMETHODCALLTYPE SetProxyPort( 
  15959.             /* [in] */ LPCWSTR pwszProtocol,
  15960.             /* [in] */ DWORD dwPort) = 0;
  15961.         
  15962.         virtual HRESULT STDMETHODCALLTYPE GetProxyExceptionList( 
  15963.             /* [in] */ LPCWSTR pwszProtocol,
  15964.             /* [size_is][out] */ WCHAR *pwszExceptionList,
  15965.             /* [out][in] */ DWORD *pcchExceptionList) = 0;
  15966.         
  15967.         virtual HRESULT STDMETHODCALLTYPE SetProxyExceptionList( 
  15968.             /* [in] */ LPCWSTR pwszProtocol,
  15969.             /* [in] */ LPCWSTR pwszExceptionList) = 0;
  15970.         
  15971.         virtual HRESULT STDMETHODCALLTYPE GetProxyBypassForLocal( 
  15972.             /* [in] */ LPCWSTR pwszProtocol,
  15973.             /* [out] */ BOOL *pfBypassForLocal) = 0;
  15974.         
  15975.         virtual HRESULT STDMETHODCALLTYPE SetProxyBypassForLocal( 
  15976.             /* [in] */ LPCWSTR pwszProtocol,
  15977.             /* [in] */ BOOL fBypassForLocal) = 0;
  15978.         
  15979.         virtual HRESULT STDMETHODCALLTYPE GetForceRerunAutoProxyDetection( 
  15980.             /* [out] */ BOOL *pfForceRerunDetection) = 0;
  15981.         
  15982.         virtual HRESULT STDMETHODCALLTYPE SetForceRerunAutoProxyDetection( 
  15983.             /* [in] */ BOOL fForceRerunDetection) = 0;
  15984.         
  15985.         virtual HRESULT STDMETHODCALLTYPE GetEnableMulticast( 
  15986.             /* [out] */ BOOL *pfEnableMulticast) = 0;
  15987.         
  15988.         virtual HRESULT STDMETHODCALLTYPE SetEnableMulticast( 
  15989.             /* [in] */ BOOL fEnableMulticast) = 0;
  15990.         
  15991.         virtual HRESULT STDMETHODCALLTYPE GetEnableHTTP( 
  15992.             /* [out] */ BOOL *pfEnableHTTP) = 0;
  15993.         
  15994.         virtual HRESULT STDMETHODCALLTYPE SetEnableHTTP( 
  15995.             /* [in] */ BOOL fEnableHTTP) = 0;
  15996.         
  15997.         virtual HRESULT STDMETHODCALLTYPE GetEnableUDP( 
  15998.             /* [out] */ BOOL *pfEnableUDP) = 0;
  15999.         
  16000.         virtual HRESULT STDMETHODCALLTYPE SetEnableUDP( 
  16001.             /* [in] */ BOOL fEnableUDP) = 0;
  16002.         
  16003.         virtual HRESULT STDMETHODCALLTYPE GetEnableTCP( 
  16004.             /* [out] */ BOOL *pfEnableTCP) = 0;
  16005.         
  16006.         virtual HRESULT STDMETHODCALLTYPE SetEnableTCP( 
  16007.             /* [in] */ BOOL fEnableTCP) = 0;
  16008.         
  16009.         virtual HRESULT STDMETHODCALLTYPE ResetProtocolRollover( void) = 0;
  16010.         
  16011.         virtual HRESULT STDMETHODCALLTYPE GetConnectionBandwidth( 
  16012.             /* [out] */ DWORD *pdwConnectionBandwidth) = 0;
  16013.         
  16014.         virtual HRESULT STDMETHODCALLTYPE SetConnectionBandwidth( 
  16015.             /* [in] */ DWORD dwConnectionBandwidth) = 0;
  16016.         
  16017.         virtual HRESULT STDMETHODCALLTYPE GetNumProtocolsSupported( 
  16018.             /* [out] */ DWORD *pcProtocols) = 0;
  16019.         
  16020.         virtual HRESULT STDMETHODCALLTYPE GetSupportedProtocolName( 
  16021.             /* [in] */ DWORD dwProtocolNum,
  16022.             /* [size_is][out] */ WCHAR *pwszProtocolName,
  16023.             /* [out][in] */ DWORD *pcchProtocolName) = 0;
  16024.         
  16025.         virtual HRESULT STDMETHODCALLTYPE AddLoggingUrl( 
  16026.             /* [in] */ LPCWSTR pwszUrl) = 0;
  16027.         
  16028.         virtual HRESULT STDMETHODCALLTYPE GetLoggingUrl( 
  16029.             /* [in] */ DWORD dwIndex,
  16030.             /* [size_is][out] */ LPWSTR pwszUrl,
  16031.             /* [out][in] */ DWORD *pcchUrl) = 0;
  16032.         
  16033.         virtual HRESULT STDMETHODCALLTYPE GetLoggingUrlCount( 
  16034.             /* [out] */ DWORD *pdwUrlCount) = 0;
  16035.         
  16036.         virtual HRESULT STDMETHODCALLTYPE ResetLoggingUrlList( void) = 0;
  16037.         
  16038.     };
  16039.     
  16040. #else     /* C style interface */
  16041.  
  16042.     typedef struct IWMReaderNetworkConfigVtbl
  16043.     {
  16044.         BEGIN_INTERFACE
  16045.         
  16046.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  16047.             IWMReaderNetworkConfig * This,
  16048.             /* [in] */ REFIID riid,
  16049.             /* [iid_is][out] */ void **ppvObject);
  16050.         
  16051.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  16052.             IWMReaderNetworkConfig * This);
  16053.         
  16054.         ULONG ( STDMETHODCALLTYPE *Release )( 
  16055.             IWMReaderNetworkConfig * This);
  16056.         
  16057.         HRESULT ( STDMETHODCALLTYPE *GetBufferingTime )( 
  16058.             IWMReaderNetworkConfig * This,
  16059.             /* [out] */ QWORD *pcnsBufferingTime);
  16060.         
  16061.         HRESULT ( STDMETHODCALLTYPE *SetBufferingTime )( 
  16062.             IWMReaderNetworkConfig * This,
  16063.             /* [in] */ QWORD cnsBufferingTime);
  16064.         
  16065.         HRESULT ( STDMETHODCALLTYPE *GetUDPPortRanges )( 
  16066.             IWMReaderNetworkConfig * This,
  16067.             /* [size_is][out] */ WM_PORT_NUMBER_RANGE *pRangeArray,
  16068.             /* [out][in] */ DWORD *pcRanges);
  16069.         
  16070.         HRESULT ( STDMETHODCALLTYPE *SetUDPPortRanges )( 
  16071.             IWMReaderNetworkConfig * This,
  16072.             /* [size_is][in] */ WM_PORT_NUMBER_RANGE *pRangeArray,
  16073.             /* [in] */ DWORD cRanges);
  16074.         
  16075.         HRESULT ( STDMETHODCALLTYPE *GetProxySettings )( 
  16076.             IWMReaderNetworkConfig * This,
  16077.             /* [in] */ LPCWSTR pwszProtocol,
  16078.             /* [out] */ WMT_PROXY_SETTINGS *pProxySetting);
  16079.         
  16080.         HRESULT ( STDMETHODCALLTYPE *SetProxySettings )( 
  16081.             IWMReaderNetworkConfig * This,
  16082.             /* [in] */ LPCWSTR pwszProtocol,
  16083.             /* [in] */ WMT_PROXY_SETTINGS ProxySetting);
  16084.         
  16085.         HRESULT ( STDMETHODCALLTYPE *GetProxyHostName )( 
  16086.             IWMReaderNetworkConfig * This,
  16087.             /* [in] */ LPCWSTR pwszProtocol,
  16088.             /* [size_is][out] */ WCHAR *pwszHostName,
  16089.             /* [out][in] */ DWORD *pcchHostName);
  16090.         
  16091.         HRESULT ( STDMETHODCALLTYPE *SetProxyHostName )( 
  16092.             IWMReaderNetworkConfig * This,
  16093.             /* [in] */ LPCWSTR pwszProtocol,
  16094.             /* [in] */ LPCWSTR pwszHostName);
  16095.         
  16096.         HRESULT ( STDMETHODCALLTYPE *GetProxyPort )( 
  16097.             IWMReaderNetworkConfig * This,
  16098.             /* [in] */ LPCWSTR pwszProtocol,
  16099.             /* [out] */ DWORD *pdwPort);
  16100.         
  16101.         HRESULT ( STDMETHODCALLTYPE *SetProxyPort )( 
  16102.             IWMReaderNetworkConfig * This,
  16103.             /* [in] */ LPCWSTR pwszProtocol,
  16104.             /* [in] */ DWORD dwPort);
  16105.         
  16106.         HRESULT ( STDMETHODCALLTYPE *GetProxyExceptionList )( 
  16107.             IWMReaderNetworkConfig * This,
  16108.             /* [in] */ LPCWSTR pwszProtocol,
  16109.             /* [size_is][out] */ WCHAR *pwszExceptionList,
  16110.             /* [out][in] */ DWORD *pcchExceptionList);
  16111.         
  16112.         HRESULT ( STDMETHODCALLTYPE *SetProxyExceptionList )( 
  16113.             IWMReaderNetworkConfig * This,
  16114.             /* [in] */ LPCWSTR pwszProtocol,
  16115.             /* [in] */ LPCWSTR pwszExceptionList);
  16116.         
  16117.         HRESULT ( STDMETHODCALLTYPE *GetProxyBypassForLocal )( 
  16118.             IWMReaderNetworkConfig * This,
  16119.             /* [in] */ LPCWSTR pwszProtocol,
  16120.             /* [out] */ BOOL *pfBypassForLocal);
  16121.         
  16122.         HRESULT ( STDMETHODCALLTYPE *SetProxyBypassForLocal )( 
  16123.             IWMReaderNetworkConfig * This,
  16124.             /* [in] */ LPCWSTR pwszProtocol,
  16125.             /* [in] */ BOOL fBypassForLocal);
  16126.         
  16127.         HRESULT ( STDMETHODCALLTYPE *GetForceRerunAutoProxyDetection )( 
  16128.             IWMReaderNetworkConfig * This,
  16129.             /* [out] */ BOOL *pfForceRerunDetection);
  16130.         
  16131.         HRESULT ( STDMETHODCALLTYPE *SetForceRerunAutoProxyDetection )( 
  16132.             IWMReaderNetworkConfig * This,
  16133.             /* [in] */ BOOL fForceRerunDetection);
  16134.         
  16135.         HRESULT ( STDMETHODCALLTYPE *GetEnableMulticast )( 
  16136.             IWMReaderNetworkConfig * This,
  16137.             /* [out] */ BOOL *pfEnableMulticast);
  16138.         
  16139.         HRESULT ( STDMETHODCALLTYPE *SetEnableMulticast )( 
  16140.             IWMReaderNetworkConfig * This,
  16141.             /* [in] */ BOOL fEnableMulticast);
  16142.         
  16143.         HRESULT ( STDMETHODCALLTYPE *GetEnableHTTP )( 
  16144.             IWMReaderNetworkConfig * This,
  16145.             /* [out] */ BOOL *pfEnableHTTP);
  16146.         
  16147.         HRESULT ( STDMETHODCALLTYPE *SetEnableHTTP )( 
  16148.             IWMReaderNetworkConfig * This,
  16149.             /* [in] */ BOOL fEnableHTTP);
  16150.         
  16151.         HRESULT ( STDMETHODCALLTYPE *GetEnableUDP )( 
  16152.             IWMReaderNetworkConfig * This,
  16153.             /* [out] */ BOOL *pfEnableUDP);
  16154.         
  16155.         HRESULT ( STDMETHODCALLTYPE *SetEnableUDP )( 
  16156.             IWMReaderNetworkConfig * This,
  16157.             /* [in] */ BOOL fEnableUDP);
  16158.         
  16159.         HRESULT ( STDMETHODCALLTYPE *GetEnableTCP )( 
  16160.             IWMReaderNetworkConfig * This,
  16161.             /* [out] */ BOOL *pfEnableTCP);
  16162.         
  16163.         HRESULT ( STDMETHODCALLTYPE *SetEnableTCP )( 
  16164.             IWMReaderNetworkConfig * This,
  16165.             /* [in] */ BOOL fEnableTCP);
  16166.         
  16167.         HRESULT ( STDMETHODCALLTYPE *ResetProtocolRollover )( 
  16168.             IWMReaderNetworkConfig * This);
  16169.         
  16170.         HRESULT ( STDMETHODCALLTYPE *GetConnectionBandwidth )( 
  16171.             IWMReaderNetworkConfig * This,
  16172.             /* [out] */ DWORD *pdwConnectionBandwidth);
  16173.         
  16174.         HRESULT ( STDMETHODCALLTYPE *SetConnectionBandwidth )( 
  16175.             IWMReaderNetworkConfig * This,
  16176.             /* [in] */ DWORD dwConnectionBandwidth);
  16177.         
  16178.         HRESULT ( STDMETHODCALLTYPE *GetNumProtocolsSupported )( 
  16179.             IWMReaderNetworkConfig * This,
  16180.             /* [out] */ DWORD *pcProtocols);
  16181.         
  16182.         HRESULT ( STDMETHODCALLTYPE *GetSupportedProtocolName )( 
  16183.             IWMReaderNetworkConfig * This,
  16184.             /* [in] */ DWORD dwProtocolNum,
  16185.             /* [size_is][out] */ WCHAR *pwszProtocolName,
  16186.             /* [out][in] */ DWORD *pcchProtocolName);
  16187.         
  16188.         HRESULT ( STDMETHODCALLTYPE *AddLoggingUrl )( 
  16189.             IWMReaderNetworkConfig * This,
  16190.             /* [in] */ LPCWSTR pwszUrl);
  16191.         
  16192.         HRESULT ( STDMETHODCALLTYPE *GetLoggingUrl )( 
  16193.             IWMReaderNetworkConfig * This,
  16194.             /* [in] */ DWORD dwIndex,
  16195.             /* [size_is][out] */ LPWSTR pwszUrl,
  16196.             /* [out][in] */ DWORD *pcchUrl);
  16197.         
  16198.         HRESULT ( STDMETHODCALLTYPE *GetLoggingUrlCount )( 
  16199.             IWMReaderNetworkConfig * This,
  16200.             /* [out] */ DWORD *pdwUrlCount);
  16201.         
  16202.         HRESULT ( STDMETHODCALLTYPE *ResetLoggingUrlList )( 
  16203.             IWMReaderNetworkConfig * This);
  16204.         
  16205.         END_INTERFACE
  16206.     } IWMReaderNetworkConfigVtbl;
  16207.  
  16208.     interface IWMReaderNetworkConfig
  16209.     {
  16210.         CONST_VTBL struct IWMReaderNetworkConfigVtbl *lpVtbl;
  16211.     };
  16212.  
  16213.     
  16214.  
  16215. #ifdef COBJMACROS
  16216.  
  16217.  
  16218. #define IWMReaderNetworkConfig_QueryInterface(This,riid,ppvObject)    \
  16219.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  16220.  
  16221. #define IWMReaderNetworkConfig_AddRef(This)    \
  16222.     (This)->lpVtbl -> AddRef(This)
  16223.  
  16224. #define IWMReaderNetworkConfig_Release(This)    \
  16225.     (This)->lpVtbl -> Release(This)
  16226.  
  16227.  
  16228. #define IWMReaderNetworkConfig_GetBufferingTime(This,pcnsBufferingTime)    \
  16229.     (This)->lpVtbl -> GetBufferingTime(This,pcnsBufferingTime)
  16230.  
  16231. #define IWMReaderNetworkConfig_SetBufferingTime(This,cnsBufferingTime)    \
  16232.     (This)->lpVtbl -> SetBufferingTime(This,cnsBufferingTime)
  16233.  
  16234. #define IWMReaderNetworkConfig_GetUDPPortRanges(This,pRangeArray,pcRanges)    \
  16235.     (This)->lpVtbl -> GetUDPPortRanges(This,pRangeArray,pcRanges)
  16236.  
  16237. #define IWMReaderNetworkConfig_SetUDPPortRanges(This,pRangeArray,cRanges)    \
  16238.     (This)->lpVtbl -> SetUDPPortRanges(This,pRangeArray,cRanges)
  16239.  
  16240. #define IWMReaderNetworkConfig_GetProxySettings(This,pwszProtocol,pProxySetting)    \
  16241.     (This)->lpVtbl -> GetProxySettings(This,pwszProtocol,pProxySetting)
  16242.  
  16243. #define IWMReaderNetworkConfig_SetProxySettings(This,pwszProtocol,ProxySetting)    \
  16244.     (This)->lpVtbl -> SetProxySettings(This,pwszProtocol,ProxySetting)
  16245.  
  16246. #define IWMReaderNetworkConfig_GetProxyHostName(This,pwszProtocol,pwszHostName,pcchHostName)    \
  16247.     (This)->lpVtbl -> GetProxyHostName(This,pwszProtocol,pwszHostName,pcchHostName)
  16248.  
  16249. #define IWMReaderNetworkConfig_SetProxyHostName(This,pwszProtocol,pwszHostName)    \
  16250.     (This)->lpVtbl -> SetProxyHostName(This,pwszProtocol,pwszHostName)
  16251.  
  16252. #define IWMReaderNetworkConfig_GetProxyPort(This,pwszProtocol,pdwPort)    \
  16253.     (This)->lpVtbl -> GetProxyPort(This,pwszProtocol,pdwPort)
  16254.  
  16255. #define IWMReaderNetworkConfig_SetProxyPort(This,pwszProtocol,dwPort)    \
  16256.     (This)->lpVtbl -> SetProxyPort(This,pwszProtocol,dwPort)
  16257.  
  16258. #define IWMReaderNetworkConfig_GetProxyExceptionList(This,pwszProtocol,pwszExceptionList,pcchExceptionList)    \
  16259.     (This)->lpVtbl -> GetProxyExceptionList(This,pwszProtocol,pwszExceptionList,pcchExceptionList)
  16260.  
  16261. #define IWMReaderNetworkConfig_SetProxyExceptionList(This,pwszProtocol,pwszExceptionList)    \
  16262.     (This)->lpVtbl -> SetProxyExceptionList(This,pwszProtocol,pwszExceptionList)
  16263.  
  16264. #define IWMReaderNetworkConfig_GetProxyBypassForLocal(This,pwszProtocol,pfBypassForLocal)    \
  16265.     (This)->lpVtbl -> GetProxyBypassForLocal(This,pwszProtocol,pfBypassForLocal)
  16266.  
  16267. #define IWMReaderNetworkConfig_SetProxyBypassForLocal(This,pwszProtocol,fBypassForLocal)    \
  16268.     (This)->lpVtbl -> SetProxyBypassForLocal(This,pwszProtocol,fBypassForLocal)
  16269.  
  16270. #define IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection(This,pfForceRerunDetection)    \
  16271.     (This)->lpVtbl -> GetForceRerunAutoProxyDetection(This,pfForceRerunDetection)
  16272.  
  16273. #define IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection(This,fForceRerunDetection)    \
  16274.     (This)->lpVtbl -> SetForceRerunAutoProxyDetection(This,fForceRerunDetection)
  16275.  
  16276. #define IWMReaderNetworkConfig_GetEnableMulticast(This,pfEnableMulticast)    \
  16277.     (This)->lpVtbl -> GetEnableMulticast(This,pfEnableMulticast)
  16278.  
  16279. #define IWMReaderNetworkConfig_SetEnableMulticast(This,fEnableMulticast)    \
  16280.     (This)->lpVtbl -> SetEnableMulticast(This,fEnableMulticast)
  16281.  
  16282. #define IWMReaderNetworkConfig_GetEnableHTTP(This,pfEnableHTTP)    \
  16283.     (This)->lpVtbl -> GetEnableHTTP(This,pfEnableHTTP)
  16284.  
  16285. #define IWMReaderNetworkConfig_SetEnableHTTP(This,fEnableHTTP)    \
  16286.     (This)->lpVtbl -> SetEnableHTTP(This,fEnableHTTP)
  16287.  
  16288. #define IWMReaderNetworkConfig_GetEnableUDP(This,pfEnableUDP)    \
  16289.     (This)->lpVtbl -> GetEnableUDP(This,pfEnableUDP)
  16290.  
  16291. #define IWMReaderNetworkConfig_SetEnableUDP(This,fEnableUDP)    \
  16292.     (This)->lpVtbl -> SetEnableUDP(This,fEnableUDP)
  16293.  
  16294. #define IWMReaderNetworkConfig_GetEnableTCP(This,pfEnableTCP)    \
  16295.     (This)->lpVtbl -> GetEnableTCP(This,pfEnableTCP)
  16296.  
  16297. #define IWMReaderNetworkConfig_SetEnableTCP(This,fEnableTCP)    \
  16298.     (This)->lpVtbl -> SetEnableTCP(This,fEnableTCP)
  16299.  
  16300. #define IWMReaderNetworkConfig_ResetProtocolRollover(This)    \
  16301.     (This)->lpVtbl -> ResetProtocolRollover(This)
  16302.  
  16303. #define IWMReaderNetworkConfig_GetConnectionBandwidth(This,pdwConnectionBandwidth)    \
  16304.     (This)->lpVtbl -> GetConnectionBandwidth(This,pdwConnectionBandwidth)
  16305.  
  16306. #define IWMReaderNetworkConfig_SetConnectionBandwidth(This,dwConnectionBandwidth)    \
  16307.     (This)->lpVtbl -> SetConnectionBandwidth(This,dwConnectionBandwidth)
  16308.  
  16309. #define IWMReaderNetworkConfig_GetNumProtocolsSupported(This,pcProtocols)    \
  16310.     (This)->lpVtbl -> GetNumProtocolsSupported(This,pcProtocols)
  16311.  
  16312. #define IWMReaderNetworkConfig_GetSupportedProtocolName(This,dwProtocolNum,pwszProtocolName,pcchProtocolName)    \
  16313.     (This)->lpVtbl -> GetSupportedProtocolName(This,dwProtocolNum,pwszProtocolName,pcchProtocolName)
  16314.  
  16315. #define IWMReaderNetworkConfig_AddLoggingUrl(This,pwszUrl)    \
  16316.     (This)->lpVtbl -> AddLoggingUrl(This,pwszUrl)
  16317.  
  16318. #define IWMReaderNetworkConfig_GetLoggingUrl(This,dwIndex,pwszUrl,pcchUrl)    \
  16319.     (This)->lpVtbl -> GetLoggingUrl(This,dwIndex,pwszUrl,pcchUrl)
  16320.  
  16321. #define IWMReaderNetworkConfig_GetLoggingUrlCount(This,pdwUrlCount)    \
  16322.     (This)->lpVtbl -> GetLoggingUrlCount(This,pdwUrlCount)
  16323.  
  16324. #define IWMReaderNetworkConfig_ResetLoggingUrlList(This)    \
  16325.     (This)->lpVtbl -> ResetLoggingUrlList(This)
  16326.  
  16327. #endif /* COBJMACROS */
  16328.  
  16329.  
  16330. #endif     /* C style interface */
  16331.  
  16332.  
  16333.  
  16334. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetBufferingTime_Proxy( 
  16335.     IWMReaderNetworkConfig * This,
  16336.     /* [out] */ QWORD *pcnsBufferingTime);
  16337.  
  16338.  
  16339. void __RPC_STUB IWMReaderNetworkConfig_GetBufferingTime_Stub(
  16340.     IRpcStubBuffer *This,
  16341.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16342.     PRPC_MESSAGE _pRpcMessage,
  16343.     DWORD *_pdwStubPhase);
  16344.  
  16345.  
  16346. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetBufferingTime_Proxy( 
  16347.     IWMReaderNetworkConfig * This,
  16348.     /* [in] */ QWORD cnsBufferingTime);
  16349.  
  16350.  
  16351. void __RPC_STUB IWMReaderNetworkConfig_SetBufferingTime_Stub(
  16352.     IRpcStubBuffer *This,
  16353.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16354.     PRPC_MESSAGE _pRpcMessage,
  16355.     DWORD *_pdwStubPhase);
  16356.  
  16357.  
  16358. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetUDPPortRanges_Proxy( 
  16359.     IWMReaderNetworkConfig * This,
  16360.     /* [size_is][out] */ WM_PORT_NUMBER_RANGE *pRangeArray,
  16361.     /* [out][in] */ DWORD *pcRanges);
  16362.  
  16363.  
  16364. void __RPC_STUB IWMReaderNetworkConfig_GetUDPPortRanges_Stub(
  16365.     IRpcStubBuffer *This,
  16366.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16367.     PRPC_MESSAGE _pRpcMessage,
  16368.     DWORD *_pdwStubPhase);
  16369.  
  16370.  
  16371. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetUDPPortRanges_Proxy( 
  16372.     IWMReaderNetworkConfig * This,
  16373.     /* [size_is][in] */ WM_PORT_NUMBER_RANGE *pRangeArray,
  16374.     /* [in] */ DWORD cRanges);
  16375.  
  16376.  
  16377. void __RPC_STUB IWMReaderNetworkConfig_SetUDPPortRanges_Stub(
  16378.     IRpcStubBuffer *This,
  16379.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16380.     PRPC_MESSAGE _pRpcMessage,
  16381.     DWORD *_pdwStubPhase);
  16382.  
  16383.  
  16384. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetProxySettings_Proxy( 
  16385.     IWMReaderNetworkConfig * This,
  16386.     /* [in] */ LPCWSTR pwszProtocol,
  16387.     /* [out] */ WMT_PROXY_SETTINGS *pProxySetting);
  16388.  
  16389.  
  16390. void __RPC_STUB IWMReaderNetworkConfig_GetProxySettings_Stub(
  16391.     IRpcStubBuffer *This,
  16392.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16393.     PRPC_MESSAGE _pRpcMessage,
  16394.     DWORD *_pdwStubPhase);
  16395.  
  16396.  
  16397. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetProxySettings_Proxy( 
  16398.     IWMReaderNetworkConfig * This,
  16399.     /* [in] */ LPCWSTR pwszProtocol,
  16400.     /* [in] */ WMT_PROXY_SETTINGS ProxySetting);
  16401.  
  16402.  
  16403. void __RPC_STUB IWMReaderNetworkConfig_SetProxySettings_Stub(
  16404.     IRpcStubBuffer *This,
  16405.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16406.     PRPC_MESSAGE _pRpcMessage,
  16407.     DWORD *_pdwStubPhase);
  16408.  
  16409.  
  16410. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetProxyHostName_Proxy( 
  16411.     IWMReaderNetworkConfig * This,
  16412.     /* [in] */ LPCWSTR pwszProtocol,
  16413.     /* [size_is][out] */ WCHAR *pwszHostName,
  16414.     /* [out][in] */ DWORD *pcchHostName);
  16415.  
  16416.  
  16417. void __RPC_STUB IWMReaderNetworkConfig_GetProxyHostName_Stub(
  16418.     IRpcStubBuffer *This,
  16419.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16420.     PRPC_MESSAGE _pRpcMessage,
  16421.     DWORD *_pdwStubPhase);
  16422.  
  16423.  
  16424. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetProxyHostName_Proxy( 
  16425.     IWMReaderNetworkConfig * This,
  16426.     /* [in] */ LPCWSTR pwszProtocol,
  16427.     /* [in] */ LPCWSTR pwszHostName);
  16428.  
  16429.  
  16430. void __RPC_STUB IWMReaderNetworkConfig_SetProxyHostName_Stub(
  16431.     IRpcStubBuffer *This,
  16432.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16433.     PRPC_MESSAGE _pRpcMessage,
  16434.     DWORD *_pdwStubPhase);
  16435.  
  16436.  
  16437. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetProxyPort_Proxy( 
  16438.     IWMReaderNetworkConfig * This,
  16439.     /* [in] */ LPCWSTR pwszProtocol,
  16440.     /* [out] */ DWORD *pdwPort);
  16441.  
  16442.  
  16443. void __RPC_STUB IWMReaderNetworkConfig_GetProxyPort_Stub(
  16444.     IRpcStubBuffer *This,
  16445.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16446.     PRPC_MESSAGE _pRpcMessage,
  16447.     DWORD *_pdwStubPhase);
  16448.  
  16449.  
  16450. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetProxyPort_Proxy( 
  16451.     IWMReaderNetworkConfig * This,
  16452.     /* [in] */ LPCWSTR pwszProtocol,
  16453.     /* [in] */ DWORD dwPort);
  16454.  
  16455.  
  16456. void __RPC_STUB IWMReaderNetworkConfig_SetProxyPort_Stub(
  16457.     IRpcStubBuffer *This,
  16458.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16459.     PRPC_MESSAGE _pRpcMessage,
  16460.     DWORD *_pdwStubPhase);
  16461.  
  16462.  
  16463. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetProxyExceptionList_Proxy( 
  16464.     IWMReaderNetworkConfig * This,
  16465.     /* [in] */ LPCWSTR pwszProtocol,
  16466.     /* [size_is][out] */ WCHAR *pwszExceptionList,
  16467.     /* [out][in] */ DWORD *pcchExceptionList);
  16468.  
  16469.  
  16470. void __RPC_STUB IWMReaderNetworkConfig_GetProxyExceptionList_Stub(
  16471.     IRpcStubBuffer *This,
  16472.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16473.     PRPC_MESSAGE _pRpcMessage,
  16474.     DWORD *_pdwStubPhase);
  16475.  
  16476.  
  16477. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetProxyExceptionList_Proxy( 
  16478.     IWMReaderNetworkConfig * This,
  16479.     /* [in] */ LPCWSTR pwszProtocol,
  16480.     /* [in] */ LPCWSTR pwszExceptionList);
  16481.  
  16482.  
  16483. void __RPC_STUB IWMReaderNetworkConfig_SetProxyExceptionList_Stub(
  16484.     IRpcStubBuffer *This,
  16485.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16486.     PRPC_MESSAGE _pRpcMessage,
  16487.     DWORD *_pdwStubPhase);
  16488.  
  16489.  
  16490. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetProxyBypassForLocal_Proxy( 
  16491.     IWMReaderNetworkConfig * This,
  16492.     /* [in] */ LPCWSTR pwszProtocol,
  16493.     /* [out] */ BOOL *pfBypassForLocal);
  16494.  
  16495.  
  16496. void __RPC_STUB IWMReaderNetworkConfig_GetProxyBypassForLocal_Stub(
  16497.     IRpcStubBuffer *This,
  16498.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16499.     PRPC_MESSAGE _pRpcMessage,
  16500.     DWORD *_pdwStubPhase);
  16501.  
  16502.  
  16503. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetProxyBypassForLocal_Proxy( 
  16504.     IWMReaderNetworkConfig * This,
  16505.     /* [in] */ LPCWSTR pwszProtocol,
  16506.     /* [in] */ BOOL fBypassForLocal);
  16507.  
  16508.  
  16509. void __RPC_STUB IWMReaderNetworkConfig_SetProxyBypassForLocal_Stub(
  16510.     IRpcStubBuffer *This,
  16511.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16512.     PRPC_MESSAGE _pRpcMessage,
  16513.     DWORD *_pdwStubPhase);
  16514.  
  16515.  
  16516. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection_Proxy( 
  16517.     IWMReaderNetworkConfig * This,
  16518.     /* [out] */ BOOL *pfForceRerunDetection);
  16519.  
  16520.  
  16521. void __RPC_STUB IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection_Stub(
  16522.     IRpcStubBuffer *This,
  16523.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16524.     PRPC_MESSAGE _pRpcMessage,
  16525.     DWORD *_pdwStubPhase);
  16526.  
  16527.  
  16528. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection_Proxy( 
  16529.     IWMReaderNetworkConfig * This,
  16530.     /* [in] */ BOOL fForceRerunDetection);
  16531.  
  16532.  
  16533. void __RPC_STUB IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection_Stub(
  16534.     IRpcStubBuffer *This,
  16535.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16536.     PRPC_MESSAGE _pRpcMessage,
  16537.     DWORD *_pdwStubPhase);
  16538.  
  16539.  
  16540. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetEnableMulticast_Proxy( 
  16541.     IWMReaderNetworkConfig * This,
  16542.     /* [out] */ BOOL *pfEnableMulticast);
  16543.  
  16544.  
  16545. void __RPC_STUB IWMReaderNetworkConfig_GetEnableMulticast_Stub(
  16546.     IRpcStubBuffer *This,
  16547.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16548.     PRPC_MESSAGE _pRpcMessage,
  16549.     DWORD *_pdwStubPhase);
  16550.  
  16551.  
  16552. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetEnableMulticast_Proxy( 
  16553.     IWMReaderNetworkConfig * This,
  16554.     /* [in] */ BOOL fEnableMulticast);
  16555.  
  16556.  
  16557. void __RPC_STUB IWMReaderNetworkConfig_SetEnableMulticast_Stub(
  16558.     IRpcStubBuffer *This,
  16559.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16560.     PRPC_MESSAGE _pRpcMessage,
  16561.     DWORD *_pdwStubPhase);
  16562.  
  16563.  
  16564. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetEnableHTTP_Proxy( 
  16565.     IWMReaderNetworkConfig * This,
  16566.     /* [out] */ BOOL *pfEnableHTTP);
  16567.  
  16568.  
  16569. void __RPC_STUB IWMReaderNetworkConfig_GetEnableHTTP_Stub(
  16570.     IRpcStubBuffer *This,
  16571.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16572.     PRPC_MESSAGE _pRpcMessage,
  16573.     DWORD *_pdwStubPhase);
  16574.  
  16575.  
  16576. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetEnableHTTP_Proxy( 
  16577.     IWMReaderNetworkConfig * This,
  16578.     /* [in] */ BOOL fEnableHTTP);
  16579.  
  16580.  
  16581. void __RPC_STUB IWMReaderNetworkConfig_SetEnableHTTP_Stub(
  16582.     IRpcStubBuffer *This,
  16583.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16584.     PRPC_MESSAGE _pRpcMessage,
  16585.     DWORD *_pdwStubPhase);
  16586.  
  16587.  
  16588. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetEnableUDP_Proxy( 
  16589.     IWMReaderNetworkConfig * This,
  16590.     /* [out] */ BOOL *pfEnableUDP);
  16591.  
  16592.  
  16593. void __RPC_STUB IWMReaderNetworkConfig_GetEnableUDP_Stub(
  16594.     IRpcStubBuffer *This,
  16595.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16596.     PRPC_MESSAGE _pRpcMessage,
  16597.     DWORD *_pdwStubPhase);
  16598.  
  16599.  
  16600. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetEnableUDP_Proxy( 
  16601.     IWMReaderNetworkConfig * This,
  16602.     /* [in] */ BOOL fEnableUDP);
  16603.  
  16604.  
  16605. void __RPC_STUB IWMReaderNetworkConfig_SetEnableUDP_Stub(
  16606.     IRpcStubBuffer *This,
  16607.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16608.     PRPC_MESSAGE _pRpcMessage,
  16609.     DWORD *_pdwStubPhase);
  16610.  
  16611.  
  16612. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetEnableTCP_Proxy( 
  16613.     IWMReaderNetworkConfig * This,
  16614.     /* [out] */ BOOL *pfEnableTCP);
  16615.  
  16616.  
  16617. void __RPC_STUB IWMReaderNetworkConfig_GetEnableTCP_Stub(
  16618.     IRpcStubBuffer *This,
  16619.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16620.     PRPC_MESSAGE _pRpcMessage,
  16621.     DWORD *_pdwStubPhase);
  16622.  
  16623.  
  16624. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetEnableTCP_Proxy( 
  16625.     IWMReaderNetworkConfig * This,
  16626.     /* [in] */ BOOL fEnableTCP);
  16627.  
  16628.  
  16629. void __RPC_STUB IWMReaderNetworkConfig_SetEnableTCP_Stub(
  16630.     IRpcStubBuffer *This,
  16631.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16632.     PRPC_MESSAGE _pRpcMessage,
  16633.     DWORD *_pdwStubPhase);
  16634.  
  16635.  
  16636. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_ResetProtocolRollover_Proxy( 
  16637.     IWMReaderNetworkConfig * This);
  16638.  
  16639.  
  16640. void __RPC_STUB IWMReaderNetworkConfig_ResetProtocolRollover_Stub(
  16641.     IRpcStubBuffer *This,
  16642.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16643.     PRPC_MESSAGE _pRpcMessage,
  16644.     DWORD *_pdwStubPhase);
  16645.  
  16646.  
  16647. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetConnectionBandwidth_Proxy( 
  16648.     IWMReaderNetworkConfig * This,
  16649.     /* [out] */ DWORD *pdwConnectionBandwidth);
  16650.  
  16651.  
  16652. void __RPC_STUB IWMReaderNetworkConfig_GetConnectionBandwidth_Stub(
  16653.     IRpcStubBuffer *This,
  16654.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16655.     PRPC_MESSAGE _pRpcMessage,
  16656.     DWORD *_pdwStubPhase);
  16657.  
  16658.  
  16659. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_SetConnectionBandwidth_Proxy( 
  16660.     IWMReaderNetworkConfig * This,
  16661.     /* [in] */ DWORD dwConnectionBandwidth);
  16662.  
  16663.  
  16664. void __RPC_STUB IWMReaderNetworkConfig_SetConnectionBandwidth_Stub(
  16665.     IRpcStubBuffer *This,
  16666.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16667.     PRPC_MESSAGE _pRpcMessage,
  16668.     DWORD *_pdwStubPhase);
  16669.  
  16670.  
  16671. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetNumProtocolsSupported_Proxy( 
  16672.     IWMReaderNetworkConfig * This,
  16673.     /* [out] */ DWORD *pcProtocols);
  16674.  
  16675.  
  16676. void __RPC_STUB IWMReaderNetworkConfig_GetNumProtocolsSupported_Stub(
  16677.     IRpcStubBuffer *This,
  16678.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16679.     PRPC_MESSAGE _pRpcMessage,
  16680.     DWORD *_pdwStubPhase);
  16681.  
  16682.  
  16683. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetSupportedProtocolName_Proxy( 
  16684.     IWMReaderNetworkConfig * This,
  16685.     /* [in] */ DWORD dwProtocolNum,
  16686.     /* [size_is][out] */ WCHAR *pwszProtocolName,
  16687.     /* [out][in] */ DWORD *pcchProtocolName);
  16688.  
  16689.  
  16690. void __RPC_STUB IWMReaderNetworkConfig_GetSupportedProtocolName_Stub(
  16691.     IRpcStubBuffer *This,
  16692.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16693.     PRPC_MESSAGE _pRpcMessage,
  16694.     DWORD *_pdwStubPhase);
  16695.  
  16696.  
  16697. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_AddLoggingUrl_Proxy( 
  16698.     IWMReaderNetworkConfig * This,
  16699.     /* [in] */ LPCWSTR pwszUrl);
  16700.  
  16701.  
  16702. void __RPC_STUB IWMReaderNetworkConfig_AddLoggingUrl_Stub(
  16703.     IRpcStubBuffer *This,
  16704.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16705.     PRPC_MESSAGE _pRpcMessage,
  16706.     DWORD *_pdwStubPhase);
  16707.  
  16708.  
  16709. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetLoggingUrl_Proxy( 
  16710.     IWMReaderNetworkConfig * This,
  16711.     /* [in] */ DWORD dwIndex,
  16712.     /* [size_is][out] */ LPWSTR pwszUrl,
  16713.     /* [out][in] */ DWORD *pcchUrl);
  16714.  
  16715.  
  16716. void __RPC_STUB IWMReaderNetworkConfig_GetLoggingUrl_Stub(
  16717.     IRpcStubBuffer *This,
  16718.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16719.     PRPC_MESSAGE _pRpcMessage,
  16720.     DWORD *_pdwStubPhase);
  16721.  
  16722.  
  16723. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_GetLoggingUrlCount_Proxy( 
  16724.     IWMReaderNetworkConfig * This,
  16725.     /* [out] */ DWORD *pdwUrlCount);
  16726.  
  16727.  
  16728. void __RPC_STUB IWMReaderNetworkConfig_GetLoggingUrlCount_Stub(
  16729.     IRpcStubBuffer *This,
  16730.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16731.     PRPC_MESSAGE _pRpcMessage,
  16732.     DWORD *_pdwStubPhase);
  16733.  
  16734.  
  16735. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig_ResetLoggingUrlList_Proxy( 
  16736.     IWMReaderNetworkConfig * This);
  16737.  
  16738.  
  16739. void __RPC_STUB IWMReaderNetworkConfig_ResetLoggingUrlList_Stub(
  16740.     IRpcStubBuffer *This,
  16741.     IRpcChannelBuffer *_pRpcChannelBuffer,
  16742.     PRPC_MESSAGE _pRpcMessage,
  16743.     DWORD *_pdwStubPhase);
  16744.  
  16745.  
  16746.  
  16747. #endif     /* __IWMReaderNetworkConfig_INTERFACE_DEFINED__ */
  16748.  
  16749.  
  16750. #ifndef __IWMReaderNetworkConfig2_INTERFACE_DEFINED__
  16751. #define __IWMReaderNetworkConfig2_INTERFACE_DEFINED__
  16752.  
  16753. /* interface IWMReaderNetworkConfig2 */
  16754. /* [local][unique][helpstring][uuid][object] */ 
  16755.  
  16756.  
  16757. EXTERN_C const IID IID_IWMReaderNetworkConfig2;
  16758.  
  16759. #if defined(__cplusplus) && !defined(CINTERFACE)
  16760.     
  16761.     MIDL_INTERFACE("d979a853-042b-4050-8387-c939db22013f")
  16762.     IWMReaderNetworkConfig2 : public IWMReaderNetworkConfig
  16763.     {
  16764.     public:
  16765.         virtual HRESULT STDMETHODCALLTYPE GetEnableContentCaching( 
  16766.             /* [out] */ BOOL *pfEnableContentCaching) = 0;
  16767.         
  16768.         virtual HRESULT STDMETHODCALLTYPE SetEnableContentCaching( 
  16769.             /* [in] */ BOOL fEnableContentCaching) = 0;
  16770.         
  16771.         virtual HRESULT STDMETHODCALLTYPE GetEnableFastCache( 
  16772.             /* [out] */ BOOL *pfEnableFastCache) = 0;
  16773.         
  16774.         virtual HRESULT STDMETHODCALLTYPE SetEnableFastCache( 
  16775.             /* [in] */ BOOL fEnableFastCache) = 0;
  16776.         
  16777.         virtual HRESULT STDMETHODCALLTYPE GetAcceleratedStreamingDuration( 
  16778.             /* [out] */ QWORD *pcnsAccelDuration) = 0;
  16779.         
  16780.         virtual HRESULT STDMETHODCALLTYPE SetAcceleratedStreamingDuration( 
  16781.             /* [in] */ QWORD cnsAccelDuration) = 0;
  16782.         
  16783.         virtual HRESULT STDMETHODCALLTYPE GetAutoReconnectLimit( 
  16784.             /* [out] */ DWORD *pdwAutoReconnectLimit) = 0;
  16785.         
  16786.         virtual HRESULT STDMETHODCALLTYPE SetAutoReconnectLimit( 
  16787.             /* [in] */ DWORD dwAutoReconnectLimit) = 0;
  16788.         
  16789.         virtual HRESULT STDMETHODCALLTYPE GetEnableResends( 
  16790.             /* [out] */ BOOL *pfEnableResends) = 0;
  16791.         
  16792.         virtual HRESULT STDMETHODCALLTYPE SetEnableResends( 
  16793.             /* [in] */ BOOL fEnableResends) = 0;
  16794.         
  16795.         virtual HRESULT STDMETHODCALLTYPE GetEnableThinning( 
  16796.             /* [out] */ BOOL *pfEnableThinning) = 0;
  16797.         
  16798.         virtual HRESULT STDMETHODCALLTYPE SetEnableThinning( 
  16799.             /* [in] */ BOOL fEnableThinning) = 0;
  16800.         
  16801.         virtual HRESULT STDMETHODCALLTYPE GetMaxNetPacketSize( 
  16802.             /* [out] */ DWORD *pdwMaxNetPacketSize) = 0;
  16803.         
  16804.     };
  16805.     
  16806. #else     /* C style interface */
  16807.  
  16808.     typedef struct IWMReaderNetworkConfig2Vtbl
  16809.     {
  16810.         BEGIN_INTERFACE
  16811.         
  16812.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  16813.             IWMReaderNetworkConfig2 * This,
  16814.             /* [in] */ REFIID riid,
  16815.             /* [iid_is][out] */ void **ppvObject);
  16816.         
  16817.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  16818.             IWMReaderNetworkConfig2 * This);
  16819.         
  16820.         ULONG ( STDMETHODCALLTYPE *Release )( 
  16821.             IWMReaderNetworkConfig2 * This);
  16822.         
  16823.         HRESULT ( STDMETHODCALLTYPE *GetBufferingTime )( 
  16824.             IWMReaderNetworkConfig2 * This,
  16825.             /* [out] */ QWORD *pcnsBufferingTime);
  16826.         
  16827.         HRESULT ( STDMETHODCALLTYPE *SetBufferingTime )( 
  16828.             IWMReaderNetworkConfig2 * This,
  16829.             /* [in] */ QWORD cnsBufferingTime);
  16830.         
  16831.         HRESULT ( STDMETHODCALLTYPE *GetUDPPortRanges )( 
  16832.             IWMReaderNetworkConfig2 * This,
  16833.             /* [size_is][out] */ WM_PORT_NUMBER_RANGE *pRangeArray,
  16834.             /* [out][in] */ DWORD *pcRanges);
  16835.         
  16836.         HRESULT ( STDMETHODCALLTYPE *SetUDPPortRanges )( 
  16837.             IWMReaderNetworkConfig2 * This,
  16838.             /* [size_is][in] */ WM_PORT_NUMBER_RANGE *pRangeArray,
  16839.             /* [in] */ DWORD cRanges);
  16840.         
  16841.         HRESULT ( STDMETHODCALLTYPE *GetProxySettings )( 
  16842.             IWMReaderNetworkConfig2 * This,
  16843.             /* [in] */ LPCWSTR pwszProtocol,
  16844.             /* [out] */ WMT_PROXY_SETTINGS *pProxySetting);
  16845.         
  16846.         HRESULT ( STDMETHODCALLTYPE *SetProxySettings )( 
  16847.             IWMReaderNetworkConfig2 * This,
  16848.             /* [in] */ LPCWSTR pwszProtocol,
  16849.             /* [in] */ WMT_PROXY_SETTINGS ProxySetting);
  16850.         
  16851.         HRESULT ( STDMETHODCALLTYPE *GetProxyHostName )( 
  16852.             IWMReaderNetworkConfig2 * This,
  16853.             /* [in] */ LPCWSTR pwszProtocol,
  16854.             /* [size_is][out] */ WCHAR *pwszHostName,
  16855.             /* [out][in] */ DWORD *pcchHostName);
  16856.         
  16857.         HRESULT ( STDMETHODCALLTYPE *SetProxyHostName )( 
  16858.             IWMReaderNetworkConfig2 * This,
  16859.             /* [in] */ LPCWSTR pwszProtocol,
  16860.             /* [in] */ LPCWSTR pwszHostName);
  16861.         
  16862.         HRESULT ( STDMETHODCALLTYPE *GetProxyPort )( 
  16863.             IWMReaderNetworkConfig2 * This,
  16864.             /* [in] */ LPCWSTR pwszProtocol,
  16865.             /* [out] */ DWORD *pdwPort);
  16866.         
  16867.         HRESULT ( STDMETHODCALLTYPE *SetProxyPort )( 
  16868.             IWMReaderNetworkConfig2 * This,
  16869.             /* [in] */ LPCWSTR pwszProtocol,
  16870.             /* [in] */ DWORD dwPort);
  16871.         
  16872.         HRESULT ( STDMETHODCALLTYPE *GetProxyExceptionList )( 
  16873.             IWMReaderNetworkConfig2 * This,
  16874.             /* [in] */ LPCWSTR pwszProtocol,
  16875.             /* [size_is][out] */ WCHAR *pwszExceptionList,
  16876.             /* [out][in] */ DWORD *pcchExceptionList);
  16877.         
  16878.         HRESULT ( STDMETHODCALLTYPE *SetProxyExceptionList )( 
  16879.             IWMReaderNetworkConfig2 * This,
  16880.             /* [in] */ LPCWSTR pwszProtocol,
  16881.             /* [in] */ LPCWSTR pwszExceptionList);
  16882.         
  16883.         HRESULT ( STDMETHODCALLTYPE *GetProxyBypassForLocal )( 
  16884.             IWMReaderNetworkConfig2 * This,
  16885.             /* [in] */ LPCWSTR pwszProtocol,
  16886.             /* [out] */ BOOL *pfBypassForLocal);
  16887.         
  16888.         HRESULT ( STDMETHODCALLTYPE *SetProxyBypassForLocal )( 
  16889.             IWMReaderNetworkConfig2 * This,
  16890.             /* [in] */ LPCWSTR pwszProtocol,
  16891.             /* [in] */ BOOL fBypassForLocal);
  16892.         
  16893.         HRESULT ( STDMETHODCALLTYPE *GetForceRerunAutoProxyDetection )( 
  16894.             IWMReaderNetworkConfig2 * This,
  16895.             /* [out] */ BOOL *pfForceRerunDetection);
  16896.         
  16897.         HRESULT ( STDMETHODCALLTYPE *SetForceRerunAutoProxyDetection )( 
  16898.             IWMReaderNetworkConfig2 * This,
  16899.             /* [in] */ BOOL fForceRerunDetection);
  16900.         
  16901.         HRESULT ( STDMETHODCALLTYPE *GetEnableMulticast )( 
  16902.             IWMReaderNetworkConfig2 * This,
  16903.             /* [out] */ BOOL *pfEnableMulticast);
  16904.         
  16905.         HRESULT ( STDMETHODCALLTYPE *SetEnableMulticast )( 
  16906.             IWMReaderNetworkConfig2 * This,
  16907.             /* [in] */ BOOL fEnableMulticast);
  16908.         
  16909.         HRESULT ( STDMETHODCALLTYPE *GetEnableHTTP )( 
  16910.             IWMReaderNetworkConfig2 * This,
  16911.             /* [out] */ BOOL *pfEnableHTTP);
  16912.         
  16913.         HRESULT ( STDMETHODCALLTYPE *SetEnableHTTP )( 
  16914.             IWMReaderNetworkConfig2 * This,
  16915.             /* [in] */ BOOL fEnableHTTP);
  16916.         
  16917.         HRESULT ( STDMETHODCALLTYPE *GetEnableUDP )( 
  16918.             IWMReaderNetworkConfig2 * This,
  16919.             /* [out] */ BOOL *pfEnableUDP);
  16920.         
  16921.         HRESULT ( STDMETHODCALLTYPE *SetEnableUDP )( 
  16922.             IWMReaderNetworkConfig2 * This,
  16923.             /* [in] */ BOOL fEnableUDP);
  16924.         
  16925.         HRESULT ( STDMETHODCALLTYPE *GetEnableTCP )( 
  16926.             IWMReaderNetworkConfig2 * This,
  16927.             /* [out] */ BOOL *pfEnableTCP);
  16928.         
  16929.         HRESULT ( STDMETHODCALLTYPE *SetEnableTCP )( 
  16930.             IWMReaderNetworkConfig2 * This,
  16931.             /* [in] */ BOOL fEnableTCP);
  16932.         
  16933.         HRESULT ( STDMETHODCALLTYPE *ResetProtocolRollover )( 
  16934.             IWMReaderNetworkConfig2 * This);
  16935.         
  16936.         HRESULT ( STDMETHODCALLTYPE *GetConnectionBandwidth )( 
  16937.             IWMReaderNetworkConfig2 * This,
  16938.             /* [out] */ DWORD *pdwConnectionBandwidth);
  16939.         
  16940.         HRESULT ( STDMETHODCALLTYPE *SetConnectionBandwidth )( 
  16941.             IWMReaderNetworkConfig2 * This,
  16942.             /* [in] */ DWORD dwConnectionBandwidth);
  16943.         
  16944.         HRESULT ( STDMETHODCALLTYPE *GetNumProtocolsSupported )( 
  16945.             IWMReaderNetworkConfig2 * This,
  16946.             /* [out] */ DWORD *pcProtocols);
  16947.         
  16948.         HRESULT ( STDMETHODCALLTYPE *GetSupportedProtocolName )( 
  16949.             IWMReaderNetworkConfig2 * This,
  16950.             /* [in] */ DWORD dwProtocolNum,
  16951.             /* [size_is][out] */ WCHAR *pwszProtocolName,
  16952.             /* [out][in] */ DWORD *pcchProtocolName);
  16953.         
  16954.         HRESULT ( STDMETHODCALLTYPE *AddLoggingUrl )( 
  16955.             IWMReaderNetworkConfig2 * This,
  16956.             /* [in] */ LPCWSTR pwszUrl);
  16957.         
  16958.         HRESULT ( STDMETHODCALLTYPE *GetLoggingUrl )( 
  16959.             IWMReaderNetworkConfig2 * This,
  16960.             /* [in] */ DWORD dwIndex,
  16961.             /* [size_is][out] */ LPWSTR pwszUrl,
  16962.             /* [out][in] */ DWORD *pcchUrl);
  16963.         
  16964.         HRESULT ( STDMETHODCALLTYPE *GetLoggingUrlCount )( 
  16965.             IWMReaderNetworkConfig2 * This,
  16966.             /* [out] */ DWORD *pdwUrlCount);
  16967.         
  16968.         HRESULT ( STDMETHODCALLTYPE *ResetLoggingUrlList )( 
  16969.             IWMReaderNetworkConfig2 * This);
  16970.         
  16971.         HRESULT ( STDMETHODCALLTYPE *GetEnableContentCaching )( 
  16972.             IWMReaderNetworkConfig2 * This,
  16973.             /* [out] */ BOOL *pfEnableContentCaching);
  16974.         
  16975.         HRESULT ( STDMETHODCALLTYPE *SetEnableContentCaching )( 
  16976.             IWMReaderNetworkConfig2 * This,
  16977.             /* [in] */ BOOL fEnableContentCaching);
  16978.         
  16979.         HRESULT ( STDMETHODCALLTYPE *GetEnableFastCache )( 
  16980.             IWMReaderNetworkConfig2 * This,
  16981.             /* [out] */ BOOL *pfEnableFastCache);
  16982.         
  16983.         HRESULT ( STDMETHODCALLTYPE *SetEnableFastCache )( 
  16984.             IWMReaderNetworkConfig2 * This,
  16985.             /* [in] */ BOOL fEnableFastCache);
  16986.         
  16987.         HRESULT ( STDMETHODCALLTYPE *GetAcceleratedStreamingDuration )( 
  16988.             IWMReaderNetworkConfig2 * This,
  16989.             /* [out] */ QWORD *pcnsAccelDuration);
  16990.         
  16991.         HRESULT ( STDMETHODCALLTYPE *SetAcceleratedStreamingDuration )( 
  16992.             IWMReaderNetworkConfig2 * This,
  16993.             /* [in] */ QWORD cnsAccelDuration);
  16994.         
  16995.         HRESULT ( STDMETHODCALLTYPE *GetAutoReconnectLimit )( 
  16996.             IWMReaderNetworkConfig2 * This,
  16997.             /* [out] */ DWORD *pdwAutoReconnectLimit);
  16998.         
  16999.         HRESULT ( STDMETHODCALLTYPE *SetAutoReconnectLimit )( 
  17000.             IWMReaderNetworkConfig2 * This,
  17001.             /* [in] */ DWORD dwAutoReconnectLimit);
  17002.         
  17003.         HRESULT ( STDMETHODCALLTYPE *GetEnableResends )( 
  17004.             IWMReaderNetworkConfig2 * This,
  17005.             /* [out] */ BOOL *pfEnableResends);
  17006.         
  17007.         HRESULT ( STDMETHODCALLTYPE *SetEnableResends )( 
  17008.             IWMReaderNetworkConfig2 * This,
  17009.             /* [in] */ BOOL fEnableResends);
  17010.         
  17011.         HRESULT ( STDMETHODCALLTYPE *GetEnableThinning )( 
  17012.             IWMReaderNetworkConfig2 * This,
  17013.             /* [out] */ BOOL *pfEnableThinning);
  17014.         
  17015.         HRESULT ( STDMETHODCALLTYPE *SetEnableThinning )( 
  17016.             IWMReaderNetworkConfig2 * This,
  17017.             /* [in] */ BOOL fEnableThinning);
  17018.         
  17019.         HRESULT ( STDMETHODCALLTYPE *GetMaxNetPacketSize )( 
  17020.             IWMReaderNetworkConfig2 * This,
  17021.             /* [out] */ DWORD *pdwMaxNetPacketSize);
  17022.         
  17023.         END_INTERFACE
  17024.     } IWMReaderNetworkConfig2Vtbl;
  17025.  
  17026.     interface IWMReaderNetworkConfig2
  17027.     {
  17028.         CONST_VTBL struct IWMReaderNetworkConfig2Vtbl *lpVtbl;
  17029.     };
  17030.  
  17031.     
  17032.  
  17033. #ifdef COBJMACROS
  17034.  
  17035.  
  17036. #define IWMReaderNetworkConfig2_QueryInterface(This,riid,ppvObject)    \
  17037.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  17038.  
  17039. #define IWMReaderNetworkConfig2_AddRef(This)    \
  17040.     (This)->lpVtbl -> AddRef(This)
  17041.  
  17042. #define IWMReaderNetworkConfig2_Release(This)    \
  17043.     (This)->lpVtbl -> Release(This)
  17044.  
  17045.  
  17046. #define IWMReaderNetworkConfig2_GetBufferingTime(This,pcnsBufferingTime)    \
  17047.     (This)->lpVtbl -> GetBufferingTime(This,pcnsBufferingTime)
  17048.  
  17049. #define IWMReaderNetworkConfig2_SetBufferingTime(This,cnsBufferingTime)    \
  17050.     (This)->lpVtbl -> SetBufferingTime(This,cnsBufferingTime)
  17051.  
  17052. #define IWMReaderNetworkConfig2_GetUDPPortRanges(This,pRangeArray,pcRanges)    \
  17053.     (This)->lpVtbl -> GetUDPPortRanges(This,pRangeArray,pcRanges)
  17054.  
  17055. #define IWMReaderNetworkConfig2_SetUDPPortRanges(This,pRangeArray,cRanges)    \
  17056.     (This)->lpVtbl -> SetUDPPortRanges(This,pRangeArray,cRanges)
  17057.  
  17058. #define IWMReaderNetworkConfig2_GetProxySettings(This,pwszProtocol,pProxySetting)    \
  17059.     (This)->lpVtbl -> GetProxySettings(This,pwszProtocol,pProxySetting)
  17060.  
  17061. #define IWMReaderNetworkConfig2_SetProxySettings(This,pwszProtocol,ProxySetting)    \
  17062.     (This)->lpVtbl -> SetProxySettings(This,pwszProtocol,ProxySetting)
  17063.  
  17064. #define IWMReaderNetworkConfig2_GetProxyHostName(This,pwszProtocol,pwszHostName,pcchHostName)    \
  17065.     (This)->lpVtbl -> GetProxyHostName(This,pwszProtocol,pwszHostName,pcchHostName)
  17066.  
  17067. #define IWMReaderNetworkConfig2_SetProxyHostName(This,pwszProtocol,pwszHostName)    \
  17068.     (This)->lpVtbl -> SetProxyHostName(This,pwszProtocol,pwszHostName)
  17069.  
  17070. #define IWMReaderNetworkConfig2_GetProxyPort(This,pwszProtocol,pdwPort)    \
  17071.     (This)->lpVtbl -> GetProxyPort(This,pwszProtocol,pdwPort)
  17072.  
  17073. #define IWMReaderNetworkConfig2_SetProxyPort(This,pwszProtocol,dwPort)    \
  17074.     (This)->lpVtbl -> SetProxyPort(This,pwszProtocol,dwPort)
  17075.  
  17076. #define IWMReaderNetworkConfig2_GetProxyExceptionList(This,pwszProtocol,pwszExceptionList,pcchExceptionList)    \
  17077.     (This)->lpVtbl -> GetProxyExceptionList(This,pwszProtocol,pwszExceptionList,pcchExceptionList)
  17078.  
  17079. #define IWMReaderNetworkConfig2_SetProxyExceptionList(This,pwszProtocol,pwszExceptionList)    \
  17080.     (This)->lpVtbl -> SetProxyExceptionList(This,pwszProtocol,pwszExceptionList)
  17081.  
  17082. #define IWMReaderNetworkConfig2_GetProxyBypassForLocal(This,pwszProtocol,pfBypassForLocal)    \
  17083.     (This)->lpVtbl -> GetProxyBypassForLocal(This,pwszProtocol,pfBypassForLocal)
  17084.  
  17085. #define IWMReaderNetworkConfig2_SetProxyBypassForLocal(This,pwszProtocol,fBypassForLocal)    \
  17086.     (This)->lpVtbl -> SetProxyBypassForLocal(This,pwszProtocol,fBypassForLocal)
  17087.  
  17088. #define IWMReaderNetworkConfig2_GetForceRerunAutoProxyDetection(This,pfForceRerunDetection)    \
  17089.     (This)->lpVtbl -> GetForceRerunAutoProxyDetection(This,pfForceRerunDetection)
  17090.  
  17091. #define IWMReaderNetworkConfig2_SetForceRerunAutoProxyDetection(This,fForceRerunDetection)    \
  17092.     (This)->lpVtbl -> SetForceRerunAutoProxyDetection(This,fForceRerunDetection)
  17093.  
  17094. #define IWMReaderNetworkConfig2_GetEnableMulticast(This,pfEnableMulticast)    \
  17095.     (This)->lpVtbl -> GetEnableMulticast(This,pfEnableMulticast)
  17096.  
  17097. #define IWMReaderNetworkConfig2_SetEnableMulticast(This,fEnableMulticast)    \
  17098.     (This)->lpVtbl -> SetEnableMulticast(This,fEnableMulticast)
  17099.  
  17100. #define IWMReaderNetworkConfig2_GetEnableHTTP(This,pfEnableHTTP)    \
  17101.     (This)->lpVtbl -> GetEnableHTTP(This,pfEnableHTTP)
  17102.  
  17103. #define IWMReaderNetworkConfig2_SetEnableHTTP(This,fEnableHTTP)    \
  17104.     (This)->lpVtbl -> SetEnableHTTP(This,fEnableHTTP)
  17105.  
  17106. #define IWMReaderNetworkConfig2_GetEnableUDP(This,pfEnableUDP)    \
  17107.     (This)->lpVtbl -> GetEnableUDP(This,pfEnableUDP)
  17108.  
  17109. #define IWMReaderNetworkConfig2_SetEnableUDP(This,fEnableUDP)    \
  17110.     (This)->lpVtbl -> SetEnableUDP(This,fEnableUDP)
  17111.  
  17112. #define IWMReaderNetworkConfig2_GetEnableTCP(This,pfEnableTCP)    \
  17113.     (This)->lpVtbl -> GetEnableTCP(This,pfEnableTCP)
  17114.  
  17115. #define IWMReaderNetworkConfig2_SetEnableTCP(This,fEnableTCP)    \
  17116.     (This)->lpVtbl -> SetEnableTCP(This,fEnableTCP)
  17117.  
  17118. #define IWMReaderNetworkConfig2_ResetProtocolRollover(This)    \
  17119.     (This)->lpVtbl -> ResetProtocolRollover(This)
  17120.  
  17121. #define IWMReaderNetworkConfig2_GetConnectionBandwidth(This,pdwConnectionBandwidth)    \
  17122.     (This)->lpVtbl -> GetConnectionBandwidth(This,pdwConnectionBandwidth)
  17123.  
  17124. #define IWMReaderNetworkConfig2_SetConnectionBandwidth(This,dwConnectionBandwidth)    \
  17125.     (This)->lpVtbl -> SetConnectionBandwidth(This,dwConnectionBandwidth)
  17126.  
  17127. #define IWMReaderNetworkConfig2_GetNumProtocolsSupported(This,pcProtocols)    \
  17128.     (This)->lpVtbl -> GetNumProtocolsSupported(This,pcProtocols)
  17129.  
  17130. #define IWMReaderNetworkConfig2_GetSupportedProtocolName(This,dwProtocolNum,pwszProtocolName,pcchProtocolName)    \
  17131.     (This)->lpVtbl -> GetSupportedProtocolName(This,dwProtocolNum,pwszProtocolName,pcchProtocolName)
  17132.  
  17133. #define IWMReaderNetworkConfig2_AddLoggingUrl(This,pwszUrl)    \
  17134.     (This)->lpVtbl -> AddLoggingUrl(This,pwszUrl)
  17135.  
  17136. #define IWMReaderNetworkConfig2_GetLoggingUrl(This,dwIndex,pwszUrl,pcchUrl)    \
  17137.     (This)->lpVtbl -> GetLoggingUrl(This,dwIndex,pwszUrl,pcchUrl)
  17138.  
  17139. #define IWMReaderNetworkConfig2_GetLoggingUrlCount(This,pdwUrlCount)    \
  17140.     (This)->lpVtbl -> GetLoggingUrlCount(This,pdwUrlCount)
  17141.  
  17142. #define IWMReaderNetworkConfig2_ResetLoggingUrlList(This)    \
  17143.     (This)->lpVtbl -> ResetLoggingUrlList(This)
  17144.  
  17145.  
  17146. #define IWMReaderNetworkConfig2_GetEnableContentCaching(This,pfEnableContentCaching)    \
  17147.     (This)->lpVtbl -> GetEnableContentCaching(This,pfEnableContentCaching)
  17148.  
  17149. #define IWMReaderNetworkConfig2_SetEnableContentCaching(This,fEnableContentCaching)    \
  17150.     (This)->lpVtbl -> SetEnableContentCaching(This,fEnableContentCaching)
  17151.  
  17152. #define IWMReaderNetworkConfig2_GetEnableFastCache(This,pfEnableFastCache)    \
  17153.     (This)->lpVtbl -> GetEnableFastCache(This,pfEnableFastCache)
  17154.  
  17155. #define IWMReaderNetworkConfig2_SetEnableFastCache(This,fEnableFastCache)    \
  17156.     (This)->lpVtbl -> SetEnableFastCache(This,fEnableFastCache)
  17157.  
  17158. #define IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration(This,pcnsAccelDuration)    \
  17159.     (This)->lpVtbl -> GetAcceleratedStreamingDuration(This,pcnsAccelDuration)
  17160.  
  17161. #define IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration(This,cnsAccelDuration)    \
  17162.     (This)->lpVtbl -> SetAcceleratedStreamingDuration(This,cnsAccelDuration)
  17163.  
  17164. #define IWMReaderNetworkConfig2_GetAutoReconnectLimit(This,pdwAutoReconnectLimit)    \
  17165.     (This)->lpVtbl -> GetAutoReconnectLimit(This,pdwAutoReconnectLimit)
  17166.  
  17167. #define IWMReaderNetworkConfig2_SetAutoReconnectLimit(This,dwAutoReconnectLimit)    \
  17168.     (This)->lpVtbl -> SetAutoReconnectLimit(This,dwAutoReconnectLimit)
  17169.  
  17170. #define IWMReaderNetworkConfig2_GetEnableResends(This,pfEnableResends)    \
  17171.     (This)->lpVtbl -> GetEnableResends(This,pfEnableResends)
  17172.  
  17173. #define IWMReaderNetworkConfig2_SetEnableResends(This,fEnableResends)    \
  17174.     (This)->lpVtbl -> SetEnableResends(This,fEnableResends)
  17175.  
  17176. #define IWMReaderNetworkConfig2_GetEnableThinning(This,pfEnableThinning)    \
  17177.     (This)->lpVtbl -> GetEnableThinning(This,pfEnableThinning)
  17178.  
  17179. #define IWMReaderNetworkConfig2_SetEnableThinning(This,fEnableThinning)    \
  17180.     (This)->lpVtbl -> SetEnableThinning(This,fEnableThinning)
  17181.  
  17182. #define IWMReaderNetworkConfig2_GetMaxNetPacketSize(This,pdwMaxNetPacketSize)    \
  17183.     (This)->lpVtbl -> GetMaxNetPacketSize(This,pdwMaxNetPacketSize)
  17184.  
  17185. #endif /* COBJMACROS */
  17186.  
  17187.  
  17188. #endif     /* C style interface */
  17189.  
  17190.  
  17191.  
  17192. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_GetEnableContentCaching_Proxy( 
  17193.     IWMReaderNetworkConfig2 * This,
  17194.     /* [out] */ BOOL *pfEnableContentCaching);
  17195.  
  17196.  
  17197. void __RPC_STUB IWMReaderNetworkConfig2_GetEnableContentCaching_Stub(
  17198.     IRpcStubBuffer *This,
  17199.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17200.     PRPC_MESSAGE _pRpcMessage,
  17201.     DWORD *_pdwStubPhase);
  17202.  
  17203.  
  17204. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_SetEnableContentCaching_Proxy( 
  17205.     IWMReaderNetworkConfig2 * This,
  17206.     /* [in] */ BOOL fEnableContentCaching);
  17207.  
  17208.  
  17209. void __RPC_STUB IWMReaderNetworkConfig2_SetEnableContentCaching_Stub(
  17210.     IRpcStubBuffer *This,
  17211.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17212.     PRPC_MESSAGE _pRpcMessage,
  17213.     DWORD *_pdwStubPhase);
  17214.  
  17215.  
  17216. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_GetEnableFastCache_Proxy( 
  17217.     IWMReaderNetworkConfig2 * This,
  17218.     /* [out] */ BOOL *pfEnableFastCache);
  17219.  
  17220.  
  17221. void __RPC_STUB IWMReaderNetworkConfig2_GetEnableFastCache_Stub(
  17222.     IRpcStubBuffer *This,
  17223.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17224.     PRPC_MESSAGE _pRpcMessage,
  17225.     DWORD *_pdwStubPhase);
  17226.  
  17227.  
  17228. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_SetEnableFastCache_Proxy( 
  17229.     IWMReaderNetworkConfig2 * This,
  17230.     /* [in] */ BOOL fEnableFastCache);
  17231.  
  17232.  
  17233. void __RPC_STUB IWMReaderNetworkConfig2_SetEnableFastCache_Stub(
  17234.     IRpcStubBuffer *This,
  17235.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17236.     PRPC_MESSAGE _pRpcMessage,
  17237.     DWORD *_pdwStubPhase);
  17238.  
  17239.  
  17240. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration_Proxy( 
  17241.     IWMReaderNetworkConfig2 * This,
  17242.     /* [out] */ QWORD *pcnsAccelDuration);
  17243.  
  17244.  
  17245. void __RPC_STUB IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration_Stub(
  17246.     IRpcStubBuffer *This,
  17247.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17248.     PRPC_MESSAGE _pRpcMessage,
  17249.     DWORD *_pdwStubPhase);
  17250.  
  17251.  
  17252. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration_Proxy( 
  17253.     IWMReaderNetworkConfig2 * This,
  17254.     /* [in] */ QWORD cnsAccelDuration);
  17255.  
  17256.  
  17257. void __RPC_STUB IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration_Stub(
  17258.     IRpcStubBuffer *This,
  17259.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17260.     PRPC_MESSAGE _pRpcMessage,
  17261.     DWORD *_pdwStubPhase);
  17262.  
  17263.  
  17264. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_GetAutoReconnectLimit_Proxy( 
  17265.     IWMReaderNetworkConfig2 * This,
  17266.     /* [out] */ DWORD *pdwAutoReconnectLimit);
  17267.  
  17268.  
  17269. void __RPC_STUB IWMReaderNetworkConfig2_GetAutoReconnectLimit_Stub(
  17270.     IRpcStubBuffer *This,
  17271.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17272.     PRPC_MESSAGE _pRpcMessage,
  17273.     DWORD *_pdwStubPhase);
  17274.  
  17275.  
  17276. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_SetAutoReconnectLimit_Proxy( 
  17277.     IWMReaderNetworkConfig2 * This,
  17278.     /* [in] */ DWORD dwAutoReconnectLimit);
  17279.  
  17280.  
  17281. void __RPC_STUB IWMReaderNetworkConfig2_SetAutoReconnectLimit_Stub(
  17282.     IRpcStubBuffer *This,
  17283.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17284.     PRPC_MESSAGE _pRpcMessage,
  17285.     DWORD *_pdwStubPhase);
  17286.  
  17287.  
  17288. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_GetEnableResends_Proxy( 
  17289.     IWMReaderNetworkConfig2 * This,
  17290.     /* [out] */ BOOL *pfEnableResends);
  17291.  
  17292.  
  17293. void __RPC_STUB IWMReaderNetworkConfig2_GetEnableResends_Stub(
  17294.     IRpcStubBuffer *This,
  17295.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17296.     PRPC_MESSAGE _pRpcMessage,
  17297.     DWORD *_pdwStubPhase);
  17298.  
  17299.  
  17300. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_SetEnableResends_Proxy( 
  17301.     IWMReaderNetworkConfig2 * This,
  17302.     /* [in] */ BOOL fEnableResends);
  17303.  
  17304.  
  17305. void __RPC_STUB IWMReaderNetworkConfig2_SetEnableResends_Stub(
  17306.     IRpcStubBuffer *This,
  17307.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17308.     PRPC_MESSAGE _pRpcMessage,
  17309.     DWORD *_pdwStubPhase);
  17310.  
  17311.  
  17312. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_GetEnableThinning_Proxy( 
  17313.     IWMReaderNetworkConfig2 * This,
  17314.     /* [out] */ BOOL *pfEnableThinning);
  17315.  
  17316.  
  17317. void __RPC_STUB IWMReaderNetworkConfig2_GetEnableThinning_Stub(
  17318.     IRpcStubBuffer *This,
  17319.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17320.     PRPC_MESSAGE _pRpcMessage,
  17321.     DWORD *_pdwStubPhase);
  17322.  
  17323.  
  17324. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_SetEnableThinning_Proxy( 
  17325.     IWMReaderNetworkConfig2 * This,
  17326.     /* [in] */ BOOL fEnableThinning);
  17327.  
  17328.  
  17329. void __RPC_STUB IWMReaderNetworkConfig2_SetEnableThinning_Stub(
  17330.     IRpcStubBuffer *This,
  17331.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17332.     PRPC_MESSAGE _pRpcMessage,
  17333.     DWORD *_pdwStubPhase);
  17334.  
  17335.  
  17336. HRESULT STDMETHODCALLTYPE IWMReaderNetworkConfig2_GetMaxNetPacketSize_Proxy( 
  17337.     IWMReaderNetworkConfig2 * This,
  17338.     /* [out] */ DWORD *pdwMaxNetPacketSize);
  17339.  
  17340.  
  17341. void __RPC_STUB IWMReaderNetworkConfig2_GetMaxNetPacketSize_Stub(
  17342.     IRpcStubBuffer *This,
  17343.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17344.     PRPC_MESSAGE _pRpcMessage,
  17345.     DWORD *_pdwStubPhase);
  17346.  
  17347.  
  17348.  
  17349. #endif     /* __IWMReaderNetworkConfig2_INTERFACE_DEFINED__ */
  17350.  
  17351.  
  17352. #ifndef __IWMReaderStreamClock_INTERFACE_DEFINED__
  17353. #define __IWMReaderStreamClock_INTERFACE_DEFINED__
  17354.  
  17355. /* interface IWMReaderStreamClock */
  17356. /* [local][unique][helpstring][uuid][object] */ 
  17357.  
  17358.  
  17359. EXTERN_C const IID IID_IWMReaderStreamClock;
  17360.  
  17361. #if defined(__cplusplus) && !defined(CINTERFACE)
  17362.     
  17363.     MIDL_INTERFACE("96406BED-2B2B-11d3-B36B-00C04F6108FF")
  17364.     IWMReaderStreamClock : public IUnknown
  17365.     {
  17366.     public:
  17367.         virtual HRESULT STDMETHODCALLTYPE GetTime( 
  17368.             /* [in] */ QWORD *pcnsNow) = 0;
  17369.         
  17370.         virtual HRESULT STDMETHODCALLTYPE SetTimer( 
  17371.             /* [in] */ QWORD cnsWhen,
  17372.             /* [in] */ void *pvParam,
  17373.             /* [out] */ DWORD *pdwTimerId) = 0;
  17374.         
  17375.         virtual HRESULT STDMETHODCALLTYPE KillTimer( 
  17376.             /* [in] */ DWORD dwTimerId) = 0;
  17377.         
  17378.     };
  17379.     
  17380. #else     /* C style interface */
  17381.  
  17382.     typedef struct IWMReaderStreamClockVtbl
  17383.     {
  17384.         BEGIN_INTERFACE
  17385.         
  17386.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  17387.             IWMReaderStreamClock * This,
  17388.             /* [in] */ REFIID riid,
  17389.             /* [iid_is][out] */ void **ppvObject);
  17390.         
  17391.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  17392.             IWMReaderStreamClock * This);
  17393.         
  17394.         ULONG ( STDMETHODCALLTYPE *Release )( 
  17395.             IWMReaderStreamClock * This);
  17396.         
  17397.         HRESULT ( STDMETHODCALLTYPE *GetTime )( 
  17398.             IWMReaderStreamClock * This,
  17399.             /* [in] */ QWORD *pcnsNow);
  17400.         
  17401.         HRESULT ( STDMETHODCALLTYPE *SetTimer )( 
  17402.             IWMReaderStreamClock * This,
  17403.             /* [in] */ QWORD cnsWhen,
  17404.             /* [in] */ void *pvParam,
  17405.             /* [out] */ DWORD *pdwTimerId);
  17406.         
  17407.         HRESULT ( STDMETHODCALLTYPE *KillTimer )( 
  17408.             IWMReaderStreamClock * This,
  17409.             /* [in] */ DWORD dwTimerId);
  17410.         
  17411.         END_INTERFACE
  17412.     } IWMReaderStreamClockVtbl;
  17413.  
  17414.     interface IWMReaderStreamClock
  17415.     {
  17416.         CONST_VTBL struct IWMReaderStreamClockVtbl *lpVtbl;
  17417.     };
  17418.  
  17419.     
  17420.  
  17421. #ifdef COBJMACROS
  17422.  
  17423.  
  17424. #define IWMReaderStreamClock_QueryInterface(This,riid,ppvObject)    \
  17425.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  17426.  
  17427. #define IWMReaderStreamClock_AddRef(This)    \
  17428.     (This)->lpVtbl -> AddRef(This)
  17429.  
  17430. #define IWMReaderStreamClock_Release(This)    \
  17431.     (This)->lpVtbl -> Release(This)
  17432.  
  17433.  
  17434. #define IWMReaderStreamClock_GetTime(This,pcnsNow)    \
  17435.     (This)->lpVtbl -> GetTime(This,pcnsNow)
  17436.  
  17437. #define IWMReaderStreamClock_SetTimer(This,cnsWhen,pvParam,pdwTimerId)    \
  17438.     (This)->lpVtbl -> SetTimer(This,cnsWhen,pvParam,pdwTimerId)
  17439.  
  17440. #define IWMReaderStreamClock_KillTimer(This,dwTimerId)    \
  17441.     (This)->lpVtbl -> KillTimer(This,dwTimerId)
  17442.  
  17443. #endif /* COBJMACROS */
  17444.  
  17445.  
  17446. #endif     /* C style interface */
  17447.  
  17448.  
  17449.  
  17450. HRESULT STDMETHODCALLTYPE IWMReaderStreamClock_GetTime_Proxy( 
  17451.     IWMReaderStreamClock * This,
  17452.     /* [in] */ QWORD *pcnsNow);
  17453.  
  17454.  
  17455. void __RPC_STUB IWMReaderStreamClock_GetTime_Stub(
  17456.     IRpcStubBuffer *This,
  17457.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17458.     PRPC_MESSAGE _pRpcMessage,
  17459.     DWORD *_pdwStubPhase);
  17460.  
  17461.  
  17462. HRESULT STDMETHODCALLTYPE IWMReaderStreamClock_SetTimer_Proxy( 
  17463.     IWMReaderStreamClock * This,
  17464.     /* [in] */ QWORD cnsWhen,
  17465.     /* [in] */ void *pvParam,
  17466.     /* [out] */ DWORD *pdwTimerId);
  17467.  
  17468.  
  17469. void __RPC_STUB IWMReaderStreamClock_SetTimer_Stub(
  17470.     IRpcStubBuffer *This,
  17471.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17472.     PRPC_MESSAGE _pRpcMessage,
  17473.     DWORD *_pdwStubPhase);
  17474.  
  17475.  
  17476. HRESULT STDMETHODCALLTYPE IWMReaderStreamClock_KillTimer_Proxy( 
  17477.     IWMReaderStreamClock * This,
  17478.     /* [in] */ DWORD dwTimerId);
  17479.  
  17480.  
  17481. void __RPC_STUB IWMReaderStreamClock_KillTimer_Stub(
  17482.     IRpcStubBuffer *This,
  17483.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17484.     PRPC_MESSAGE _pRpcMessage,
  17485.     DWORD *_pdwStubPhase);
  17486.  
  17487.  
  17488.  
  17489. #endif     /* __IWMReaderStreamClock_INTERFACE_DEFINED__ */
  17490.  
  17491.  
  17492. #ifndef __IWMIndexer_INTERFACE_DEFINED__
  17493. #define __IWMIndexer_INTERFACE_DEFINED__
  17494.  
  17495. /* interface IWMIndexer */
  17496. /* [local][unique][helpstring][uuid][object] */ 
  17497.  
  17498.  
  17499. EXTERN_C const IID IID_IWMIndexer;
  17500.  
  17501. #if defined(__cplusplus) && !defined(CINTERFACE)
  17502.     
  17503.     MIDL_INTERFACE("6d7cdc71-9888-11d3-8edc-00c04f6109cf")
  17504.     IWMIndexer : public IUnknown
  17505.     {
  17506.     public:
  17507.         virtual HRESULT STDMETHODCALLTYPE StartIndexing( 
  17508.             /* [in] */ const WCHAR *pwszURL,
  17509.             /* [in] */ IWMStatusCallback *pCallback,
  17510.             /* [in] */ void *pvContext) = 0;
  17511.         
  17512.         virtual HRESULT STDMETHODCALLTYPE Cancel( void) = 0;
  17513.         
  17514.     };
  17515.     
  17516. #else     /* C style interface */
  17517.  
  17518.     typedef struct IWMIndexerVtbl
  17519.     {
  17520.         BEGIN_INTERFACE
  17521.         
  17522.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  17523.             IWMIndexer * This,
  17524.             /* [in] */ REFIID riid,
  17525.             /* [iid_is][out] */ void **ppvObject);
  17526.         
  17527.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  17528.             IWMIndexer * This);
  17529.         
  17530.         ULONG ( STDMETHODCALLTYPE *Release )( 
  17531.             IWMIndexer * This);
  17532.         
  17533.         HRESULT ( STDMETHODCALLTYPE *StartIndexing )( 
  17534.             IWMIndexer * This,
  17535.             /* [in] */ const WCHAR *pwszURL,
  17536.             /* [in] */ IWMStatusCallback *pCallback,
  17537.             /* [in] */ void *pvContext);
  17538.         
  17539.         HRESULT ( STDMETHODCALLTYPE *Cancel )( 
  17540.             IWMIndexer * This);
  17541.         
  17542.         END_INTERFACE
  17543.     } IWMIndexerVtbl;
  17544.  
  17545.     interface IWMIndexer
  17546.     {
  17547.         CONST_VTBL struct IWMIndexerVtbl *lpVtbl;
  17548.     };
  17549.  
  17550.     
  17551.  
  17552. #ifdef COBJMACROS
  17553.  
  17554.  
  17555. #define IWMIndexer_QueryInterface(This,riid,ppvObject)    \
  17556.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  17557.  
  17558. #define IWMIndexer_AddRef(This)    \
  17559.     (This)->lpVtbl -> AddRef(This)
  17560.  
  17561. #define IWMIndexer_Release(This)    \
  17562.     (This)->lpVtbl -> Release(This)
  17563.  
  17564.  
  17565. #define IWMIndexer_StartIndexing(This,pwszURL,pCallback,pvContext)    \
  17566.     (This)->lpVtbl -> StartIndexing(This,pwszURL,pCallback,pvContext)
  17567.  
  17568. #define IWMIndexer_Cancel(This)    \
  17569.     (This)->lpVtbl -> Cancel(This)
  17570.  
  17571. #endif /* COBJMACROS */
  17572.  
  17573.  
  17574. #endif     /* C style interface */
  17575.  
  17576.  
  17577.  
  17578. HRESULT STDMETHODCALLTYPE IWMIndexer_StartIndexing_Proxy( 
  17579.     IWMIndexer * This,
  17580.     /* [in] */ const WCHAR *pwszURL,
  17581.     /* [in] */ IWMStatusCallback *pCallback,
  17582.     /* [in] */ void *pvContext);
  17583.  
  17584.  
  17585. void __RPC_STUB IWMIndexer_StartIndexing_Stub(
  17586.     IRpcStubBuffer *This,
  17587.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17588.     PRPC_MESSAGE _pRpcMessage,
  17589.     DWORD *_pdwStubPhase);
  17590.  
  17591.  
  17592. HRESULT STDMETHODCALLTYPE IWMIndexer_Cancel_Proxy( 
  17593.     IWMIndexer * This);
  17594.  
  17595.  
  17596. void __RPC_STUB IWMIndexer_Cancel_Stub(
  17597.     IRpcStubBuffer *This,
  17598.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17599.     PRPC_MESSAGE _pRpcMessage,
  17600.     DWORD *_pdwStubPhase);
  17601.  
  17602.  
  17603.  
  17604. #endif     /* __IWMIndexer_INTERFACE_DEFINED__ */
  17605.  
  17606.  
  17607. #ifndef __IWMIndexer2_INTERFACE_DEFINED__
  17608. #define __IWMIndexer2_INTERFACE_DEFINED__
  17609.  
  17610. /* interface IWMIndexer2 */
  17611. /* [local][unique][helpstring][uuid][object] */ 
  17612.  
  17613.  
  17614. EXTERN_C const IID IID_IWMIndexer2;
  17615.  
  17616. #if defined(__cplusplus) && !defined(CINTERFACE)
  17617.     
  17618.     MIDL_INTERFACE("B70F1E42-6255-4df0-A6B9-02B212D9E2BB")
  17619.     IWMIndexer2 : public IWMIndexer
  17620.     {
  17621.     public:
  17622.         virtual HRESULT STDMETHODCALLTYPE Configure( 
  17623.             /* [in] */ WORD wStreamNum,
  17624.             /* [in] */ WMT_INDEXER_TYPE nIndexerType,
  17625.             /* [in] */ void *pvInterval,
  17626.             /* [in] */ void *pvIndexType) = 0;
  17627.         
  17628.     };
  17629.     
  17630. #else     /* C style interface */
  17631.  
  17632.     typedef struct IWMIndexer2Vtbl
  17633.     {
  17634.         BEGIN_INTERFACE
  17635.         
  17636.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  17637.             IWMIndexer2 * This,
  17638.             /* [in] */ REFIID riid,
  17639.             /* [iid_is][out] */ void **ppvObject);
  17640.         
  17641.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  17642.             IWMIndexer2 * This);
  17643.         
  17644.         ULONG ( STDMETHODCALLTYPE *Release )( 
  17645.             IWMIndexer2 * This);
  17646.         
  17647.         HRESULT ( STDMETHODCALLTYPE *StartIndexing )( 
  17648.             IWMIndexer2 * This,
  17649.             /* [in] */ const WCHAR *pwszURL,
  17650.             /* [in] */ IWMStatusCallback *pCallback,
  17651.             /* [in] */ void *pvContext);
  17652.         
  17653.         HRESULT ( STDMETHODCALLTYPE *Cancel )( 
  17654.             IWMIndexer2 * This);
  17655.         
  17656.         HRESULT ( STDMETHODCALLTYPE *Configure )( 
  17657.             IWMIndexer2 * This,
  17658.             /* [in] */ WORD wStreamNum,
  17659.             /* [in] */ WMT_INDEXER_TYPE nIndexerType,
  17660.             /* [in] */ void *pvInterval,
  17661.             /* [in] */ void *pvIndexType);
  17662.         
  17663.         END_INTERFACE
  17664.     } IWMIndexer2Vtbl;
  17665.  
  17666.     interface IWMIndexer2
  17667.     {
  17668.         CONST_VTBL struct IWMIndexer2Vtbl *lpVtbl;
  17669.     };
  17670.  
  17671.     
  17672.  
  17673. #ifdef COBJMACROS
  17674.  
  17675.  
  17676. #define IWMIndexer2_QueryInterface(This,riid,ppvObject)    \
  17677.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  17678.  
  17679. #define IWMIndexer2_AddRef(This)    \
  17680.     (This)->lpVtbl -> AddRef(This)
  17681.  
  17682. #define IWMIndexer2_Release(This)    \
  17683.     (This)->lpVtbl -> Release(This)
  17684.  
  17685.  
  17686. #define IWMIndexer2_StartIndexing(This,pwszURL,pCallback,pvContext)    \
  17687.     (This)->lpVtbl -> StartIndexing(This,pwszURL,pCallback,pvContext)
  17688.  
  17689. #define IWMIndexer2_Cancel(This)    \
  17690.     (This)->lpVtbl -> Cancel(This)
  17691.  
  17692.  
  17693. #define IWMIndexer2_Configure(This,wStreamNum,nIndexerType,pvInterval,pvIndexType)    \
  17694.     (This)->lpVtbl -> Configure(This,wStreamNum,nIndexerType,pvInterval,pvIndexType)
  17695.  
  17696. #endif /* COBJMACROS */
  17697.  
  17698.  
  17699. #endif     /* C style interface */
  17700.  
  17701.  
  17702.  
  17703. HRESULT STDMETHODCALLTYPE IWMIndexer2_Configure_Proxy( 
  17704.     IWMIndexer2 * This,
  17705.     /* [in] */ WORD wStreamNum,
  17706.     /* [in] */ WMT_INDEXER_TYPE nIndexerType,
  17707.     /* [in] */ void *pvInterval,
  17708.     /* [in] */ void *pvIndexType);
  17709.  
  17710.  
  17711. void __RPC_STUB IWMIndexer2_Configure_Stub(
  17712.     IRpcStubBuffer *This,
  17713.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17714.     PRPC_MESSAGE _pRpcMessage,
  17715.     DWORD *_pdwStubPhase);
  17716.  
  17717.  
  17718.  
  17719. #endif     /* __IWMIndexer2_INTERFACE_DEFINED__ */
  17720.  
  17721.  
  17722. #ifndef __IWMLicenseBackup_INTERFACE_DEFINED__
  17723. #define __IWMLicenseBackup_INTERFACE_DEFINED__
  17724.  
  17725. /* interface IWMLicenseBackup */
  17726. /* [local][unique][helpstring][uuid][object] */ 
  17727.  
  17728.  
  17729. EXTERN_C const IID IID_IWMLicenseBackup;
  17730.  
  17731. #if defined(__cplusplus) && !defined(CINTERFACE)
  17732.     
  17733.     MIDL_INTERFACE("05E5AC9F-3FB6-4508-BB43-A4067BA1EBE8")
  17734.     IWMLicenseBackup : public IUnknown
  17735.     {
  17736.     public:
  17737.         virtual HRESULT STDMETHODCALLTYPE BackupLicenses( 
  17738.             /* [in] */ DWORD dwFlags,
  17739.             /* [in] */ IWMStatusCallback *pCallback) = 0;
  17740.         
  17741.         virtual HRESULT STDMETHODCALLTYPE CancelLicenseBackup( void) = 0;
  17742.         
  17743.     };
  17744.     
  17745. #else     /* C style interface */
  17746.  
  17747.     typedef struct IWMLicenseBackupVtbl
  17748.     {
  17749.         BEGIN_INTERFACE
  17750.         
  17751.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  17752.             IWMLicenseBackup * This,
  17753.             /* [in] */ REFIID riid,
  17754.             /* [iid_is][out] */ void **ppvObject);
  17755.         
  17756.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  17757.             IWMLicenseBackup * This);
  17758.         
  17759.         ULONG ( STDMETHODCALLTYPE *Release )( 
  17760.             IWMLicenseBackup * This);
  17761.         
  17762.         HRESULT ( STDMETHODCALLTYPE *BackupLicenses )( 
  17763.             IWMLicenseBackup * This,
  17764.             /* [in] */ DWORD dwFlags,
  17765.             /* [in] */ IWMStatusCallback *pCallback);
  17766.         
  17767.         HRESULT ( STDMETHODCALLTYPE *CancelLicenseBackup )( 
  17768.             IWMLicenseBackup * This);
  17769.         
  17770.         END_INTERFACE
  17771.     } IWMLicenseBackupVtbl;
  17772.  
  17773.     interface IWMLicenseBackup
  17774.     {
  17775.         CONST_VTBL struct IWMLicenseBackupVtbl *lpVtbl;
  17776.     };
  17777.  
  17778.     
  17779.  
  17780. #ifdef COBJMACROS
  17781.  
  17782.  
  17783. #define IWMLicenseBackup_QueryInterface(This,riid,ppvObject)    \
  17784.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  17785.  
  17786. #define IWMLicenseBackup_AddRef(This)    \
  17787.     (This)->lpVtbl -> AddRef(This)
  17788.  
  17789. #define IWMLicenseBackup_Release(This)    \
  17790.     (This)->lpVtbl -> Release(This)
  17791.  
  17792.  
  17793. #define IWMLicenseBackup_BackupLicenses(This,dwFlags,pCallback)    \
  17794.     (This)->lpVtbl -> BackupLicenses(This,dwFlags,pCallback)
  17795.  
  17796. #define IWMLicenseBackup_CancelLicenseBackup(This)    \
  17797.     (This)->lpVtbl -> CancelLicenseBackup(This)
  17798.  
  17799. #endif /* COBJMACROS */
  17800.  
  17801.  
  17802. #endif     /* C style interface */
  17803.  
  17804.  
  17805.  
  17806. HRESULT STDMETHODCALLTYPE IWMLicenseBackup_BackupLicenses_Proxy( 
  17807.     IWMLicenseBackup * This,
  17808.     /* [in] */ DWORD dwFlags,
  17809.     /* [in] */ IWMStatusCallback *pCallback);
  17810.  
  17811.  
  17812. void __RPC_STUB IWMLicenseBackup_BackupLicenses_Stub(
  17813.     IRpcStubBuffer *This,
  17814.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17815.     PRPC_MESSAGE _pRpcMessage,
  17816.     DWORD *_pdwStubPhase);
  17817.  
  17818.  
  17819. HRESULT STDMETHODCALLTYPE IWMLicenseBackup_CancelLicenseBackup_Proxy( 
  17820.     IWMLicenseBackup * This);
  17821.  
  17822.  
  17823. void __RPC_STUB IWMLicenseBackup_CancelLicenseBackup_Stub(
  17824.     IRpcStubBuffer *This,
  17825.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17826.     PRPC_MESSAGE _pRpcMessage,
  17827.     DWORD *_pdwStubPhase);
  17828.  
  17829.  
  17830.  
  17831. #endif     /* __IWMLicenseBackup_INTERFACE_DEFINED__ */
  17832.  
  17833.  
  17834. #ifndef __IWMLicenseRestore_INTERFACE_DEFINED__
  17835. #define __IWMLicenseRestore_INTERFACE_DEFINED__
  17836.  
  17837. /* interface IWMLicenseRestore */
  17838. /* [local][unique][helpstring][uuid][object] */ 
  17839.  
  17840.  
  17841. EXTERN_C const IID IID_IWMLicenseRestore;
  17842.  
  17843. #if defined(__cplusplus) && !defined(CINTERFACE)
  17844.     
  17845.     MIDL_INTERFACE("C70B6334-A22E-4efb-A245-15E65A004A13")
  17846.     IWMLicenseRestore : public IUnknown
  17847.     {
  17848.     public:
  17849.         virtual HRESULT STDMETHODCALLTYPE RestoreLicenses( 
  17850.             /* [in] */ DWORD dwFlags,
  17851.             /* [in] */ IWMStatusCallback *pCallback) = 0;
  17852.         
  17853.         virtual HRESULT STDMETHODCALLTYPE CancelLicenseRestore( void) = 0;
  17854.         
  17855.     };
  17856.     
  17857. #else     /* C style interface */
  17858.  
  17859.     typedef struct IWMLicenseRestoreVtbl
  17860.     {
  17861.         BEGIN_INTERFACE
  17862.         
  17863.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  17864.             IWMLicenseRestore * This,
  17865.             /* [in] */ REFIID riid,
  17866.             /* [iid_is][out] */ void **ppvObject);
  17867.         
  17868.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  17869.             IWMLicenseRestore * This);
  17870.         
  17871.         ULONG ( STDMETHODCALLTYPE *Release )( 
  17872.             IWMLicenseRestore * This);
  17873.         
  17874.         HRESULT ( STDMETHODCALLTYPE *RestoreLicenses )( 
  17875.             IWMLicenseRestore * This,
  17876.             /* [in] */ DWORD dwFlags,
  17877.             /* [in] */ IWMStatusCallback *pCallback);
  17878.         
  17879.         HRESULT ( STDMETHODCALLTYPE *CancelLicenseRestore )( 
  17880.             IWMLicenseRestore * This);
  17881.         
  17882.         END_INTERFACE
  17883.     } IWMLicenseRestoreVtbl;
  17884.  
  17885.     interface IWMLicenseRestore
  17886.     {
  17887.         CONST_VTBL struct IWMLicenseRestoreVtbl *lpVtbl;
  17888.     };
  17889.  
  17890.     
  17891.  
  17892. #ifdef COBJMACROS
  17893.  
  17894.  
  17895. #define IWMLicenseRestore_QueryInterface(This,riid,ppvObject)    \
  17896.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  17897.  
  17898. #define IWMLicenseRestore_AddRef(This)    \
  17899.     (This)->lpVtbl -> AddRef(This)
  17900.  
  17901. #define IWMLicenseRestore_Release(This)    \
  17902.     (This)->lpVtbl -> Release(This)
  17903.  
  17904.  
  17905. #define IWMLicenseRestore_RestoreLicenses(This,dwFlags,pCallback)    \
  17906.     (This)->lpVtbl -> RestoreLicenses(This,dwFlags,pCallback)
  17907.  
  17908. #define IWMLicenseRestore_CancelLicenseRestore(This)    \
  17909.     (This)->lpVtbl -> CancelLicenseRestore(This)
  17910.  
  17911. #endif /* COBJMACROS */
  17912.  
  17913.  
  17914. #endif     /* C style interface */
  17915.  
  17916.  
  17917.  
  17918. HRESULT STDMETHODCALLTYPE IWMLicenseRestore_RestoreLicenses_Proxy( 
  17919.     IWMLicenseRestore * This,
  17920.     /* [in] */ DWORD dwFlags,
  17921.     /* [in] */ IWMStatusCallback *pCallback);
  17922.  
  17923.  
  17924. void __RPC_STUB IWMLicenseRestore_RestoreLicenses_Stub(
  17925.     IRpcStubBuffer *This,
  17926.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17927.     PRPC_MESSAGE _pRpcMessage,
  17928.     DWORD *_pdwStubPhase);
  17929.  
  17930.  
  17931. HRESULT STDMETHODCALLTYPE IWMLicenseRestore_CancelLicenseRestore_Proxy( 
  17932.     IWMLicenseRestore * This);
  17933.  
  17934.  
  17935. void __RPC_STUB IWMLicenseRestore_CancelLicenseRestore_Stub(
  17936.     IRpcStubBuffer *This,
  17937.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17938.     PRPC_MESSAGE _pRpcMessage,
  17939.     DWORD *_pdwStubPhase);
  17940.  
  17941.  
  17942.  
  17943. #endif     /* __IWMLicenseRestore_INTERFACE_DEFINED__ */
  17944.  
  17945.  
  17946. #ifndef __IWMBackupRestoreProps_INTERFACE_DEFINED__
  17947. #define __IWMBackupRestoreProps_INTERFACE_DEFINED__
  17948.  
  17949. /* interface IWMBackupRestoreProps */
  17950. /* [local][unique][helpstring][uuid][object] */ 
  17951.  
  17952.  
  17953. EXTERN_C const IID IID_IWMBackupRestoreProps;
  17954.  
  17955. #if defined(__cplusplus) && !defined(CINTERFACE)
  17956.     
  17957.     MIDL_INTERFACE("3C8E0DA6-996F-4ff3-A1AF-4838F9377E2E")
  17958.     IWMBackupRestoreProps : public IUnknown
  17959.     {
  17960.     public:
  17961.         virtual HRESULT STDMETHODCALLTYPE GetPropCount( 
  17962.             /* [out] */ WORD *pcProps) = 0;
  17963.         
  17964.         virtual HRESULT STDMETHODCALLTYPE GetPropByIndex( 
  17965.             /* [in] */ WORD wIndex,
  17966.             /* [size_is][out] */ WCHAR *pwszName,
  17967.             /* [out][in] */ WORD *pcchNameLen,
  17968.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  17969.             /* [size_is][out] */ BYTE *pValue,
  17970.             /* [out][in] */ WORD *pcbLength) = 0;
  17971.         
  17972.         virtual HRESULT STDMETHODCALLTYPE GetPropByName( 
  17973.             /* [in] */ LPCWSTR pszName,
  17974.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  17975.             /* [size_is][out] */ BYTE *pValue,
  17976.             /* [out][in] */ WORD *pcbLength) = 0;
  17977.         
  17978.         virtual HRESULT STDMETHODCALLTYPE SetProp( 
  17979.             /* [in] */ LPCWSTR pszName,
  17980.             /* [in] */ WMT_ATTR_DATATYPE Type,
  17981.             /* [size_is][in] */ const BYTE *pValue,
  17982.             /* [in] */ WORD cbLength) = 0;
  17983.         
  17984.         virtual HRESULT STDMETHODCALLTYPE RemoveProp( 
  17985.             /* [in] */ LPCWSTR pcwszName) = 0;
  17986.         
  17987.         virtual HRESULT STDMETHODCALLTYPE RemoveAllProps( void) = 0;
  17988.         
  17989.     };
  17990.     
  17991. #else     /* C style interface */
  17992.  
  17993.     typedef struct IWMBackupRestorePropsVtbl
  17994.     {
  17995.         BEGIN_INTERFACE
  17996.         
  17997.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  17998.             IWMBackupRestoreProps * This,
  17999.             /* [in] */ REFIID riid,
  18000.             /* [iid_is][out] */ void **ppvObject);
  18001.         
  18002.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  18003.             IWMBackupRestoreProps * This);
  18004.         
  18005.         ULONG ( STDMETHODCALLTYPE *Release )( 
  18006.             IWMBackupRestoreProps * This);
  18007.         
  18008.         HRESULT ( STDMETHODCALLTYPE *GetPropCount )( 
  18009.             IWMBackupRestoreProps * This,
  18010.             /* [out] */ WORD *pcProps);
  18011.         
  18012.         HRESULT ( STDMETHODCALLTYPE *GetPropByIndex )( 
  18013.             IWMBackupRestoreProps * This,
  18014.             /* [in] */ WORD wIndex,
  18015.             /* [size_is][out] */ WCHAR *pwszName,
  18016.             /* [out][in] */ WORD *pcchNameLen,
  18017.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  18018.             /* [size_is][out] */ BYTE *pValue,
  18019.             /* [out][in] */ WORD *pcbLength);
  18020.         
  18021.         HRESULT ( STDMETHODCALLTYPE *GetPropByName )( 
  18022.             IWMBackupRestoreProps * This,
  18023.             /* [in] */ LPCWSTR pszName,
  18024.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  18025.             /* [size_is][out] */ BYTE *pValue,
  18026.             /* [out][in] */ WORD *pcbLength);
  18027.         
  18028.         HRESULT ( STDMETHODCALLTYPE *SetProp )( 
  18029.             IWMBackupRestoreProps * This,
  18030.             /* [in] */ LPCWSTR pszName,
  18031.             /* [in] */ WMT_ATTR_DATATYPE Type,
  18032.             /* [size_is][in] */ const BYTE *pValue,
  18033.             /* [in] */ WORD cbLength);
  18034.         
  18035.         HRESULT ( STDMETHODCALLTYPE *RemoveProp )( 
  18036.             IWMBackupRestoreProps * This,
  18037.             /* [in] */ LPCWSTR pcwszName);
  18038.         
  18039.         HRESULT ( STDMETHODCALLTYPE *RemoveAllProps )( 
  18040.             IWMBackupRestoreProps * This);
  18041.         
  18042.         END_INTERFACE
  18043.     } IWMBackupRestorePropsVtbl;
  18044.  
  18045.     interface IWMBackupRestoreProps
  18046.     {
  18047.         CONST_VTBL struct IWMBackupRestorePropsVtbl *lpVtbl;
  18048.     };
  18049.  
  18050.     
  18051.  
  18052. #ifdef COBJMACROS
  18053.  
  18054.  
  18055. #define IWMBackupRestoreProps_QueryInterface(This,riid,ppvObject)    \
  18056.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  18057.  
  18058. #define IWMBackupRestoreProps_AddRef(This)    \
  18059.     (This)->lpVtbl -> AddRef(This)
  18060.  
  18061. #define IWMBackupRestoreProps_Release(This)    \
  18062.     (This)->lpVtbl -> Release(This)
  18063.  
  18064.  
  18065. #define IWMBackupRestoreProps_GetPropCount(This,pcProps)    \
  18066.     (This)->lpVtbl -> GetPropCount(This,pcProps)
  18067.  
  18068. #define IWMBackupRestoreProps_GetPropByIndex(This,wIndex,pwszName,pcchNameLen,pType,pValue,pcbLength)    \
  18069.     (This)->lpVtbl -> GetPropByIndex(This,wIndex,pwszName,pcchNameLen,pType,pValue,pcbLength)
  18070.  
  18071. #define IWMBackupRestoreProps_GetPropByName(This,pszName,pType,pValue,pcbLength)    \
  18072.     (This)->lpVtbl -> GetPropByName(This,pszName,pType,pValue,pcbLength)
  18073.  
  18074. #define IWMBackupRestoreProps_SetProp(This,pszName,Type,pValue,cbLength)    \
  18075.     (This)->lpVtbl -> SetProp(This,pszName,Type,pValue,cbLength)
  18076.  
  18077. #define IWMBackupRestoreProps_RemoveProp(This,pcwszName)    \
  18078.     (This)->lpVtbl -> RemoveProp(This,pcwszName)
  18079.  
  18080. #define IWMBackupRestoreProps_RemoveAllProps(This)    \
  18081.     (This)->lpVtbl -> RemoveAllProps(This)
  18082.  
  18083. #endif /* COBJMACROS */
  18084.  
  18085.  
  18086. #endif     /* C style interface */
  18087.  
  18088.  
  18089.  
  18090. HRESULT STDMETHODCALLTYPE IWMBackupRestoreProps_GetPropCount_Proxy( 
  18091.     IWMBackupRestoreProps * This,
  18092.     /* [out] */ WORD *pcProps);
  18093.  
  18094.  
  18095. void __RPC_STUB IWMBackupRestoreProps_GetPropCount_Stub(
  18096.     IRpcStubBuffer *This,
  18097.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18098.     PRPC_MESSAGE _pRpcMessage,
  18099.     DWORD *_pdwStubPhase);
  18100.  
  18101.  
  18102. HRESULT STDMETHODCALLTYPE IWMBackupRestoreProps_GetPropByIndex_Proxy( 
  18103.     IWMBackupRestoreProps * This,
  18104.     /* [in] */ WORD wIndex,
  18105.     /* [size_is][out] */ WCHAR *pwszName,
  18106.     /* [out][in] */ WORD *pcchNameLen,
  18107.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  18108.     /* [size_is][out] */ BYTE *pValue,
  18109.     /* [out][in] */ WORD *pcbLength);
  18110.  
  18111.  
  18112. void __RPC_STUB IWMBackupRestoreProps_GetPropByIndex_Stub(
  18113.     IRpcStubBuffer *This,
  18114.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18115.     PRPC_MESSAGE _pRpcMessage,
  18116.     DWORD *_pdwStubPhase);
  18117.  
  18118.  
  18119. HRESULT STDMETHODCALLTYPE IWMBackupRestoreProps_GetPropByName_Proxy( 
  18120.     IWMBackupRestoreProps * This,
  18121.     /* [in] */ LPCWSTR pszName,
  18122.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  18123.     /* [size_is][out] */ BYTE *pValue,
  18124.     /* [out][in] */ WORD *pcbLength);
  18125.  
  18126.  
  18127. void __RPC_STUB IWMBackupRestoreProps_GetPropByName_Stub(
  18128.     IRpcStubBuffer *This,
  18129.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18130.     PRPC_MESSAGE _pRpcMessage,
  18131.     DWORD *_pdwStubPhase);
  18132.  
  18133.  
  18134. HRESULT STDMETHODCALLTYPE IWMBackupRestoreProps_SetProp_Proxy( 
  18135.     IWMBackupRestoreProps * This,
  18136.     /* [in] */ LPCWSTR pszName,
  18137.     /* [in] */ WMT_ATTR_DATATYPE Type,
  18138.     /* [size_is][in] */ const BYTE *pValue,
  18139.     /* [in] */ WORD cbLength);
  18140.  
  18141.  
  18142. void __RPC_STUB IWMBackupRestoreProps_SetProp_Stub(
  18143.     IRpcStubBuffer *This,
  18144.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18145.     PRPC_MESSAGE _pRpcMessage,
  18146.     DWORD *_pdwStubPhase);
  18147.  
  18148.  
  18149. HRESULT STDMETHODCALLTYPE IWMBackupRestoreProps_RemoveProp_Proxy( 
  18150.     IWMBackupRestoreProps * This,
  18151.     /* [in] */ LPCWSTR pcwszName);
  18152.  
  18153.  
  18154. void __RPC_STUB IWMBackupRestoreProps_RemoveProp_Stub(
  18155.     IRpcStubBuffer *This,
  18156.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18157.     PRPC_MESSAGE _pRpcMessage,
  18158.     DWORD *_pdwStubPhase);
  18159.  
  18160.  
  18161. HRESULT STDMETHODCALLTYPE IWMBackupRestoreProps_RemoveAllProps_Proxy( 
  18162.     IWMBackupRestoreProps * This);
  18163.  
  18164.  
  18165. void __RPC_STUB IWMBackupRestoreProps_RemoveAllProps_Stub(
  18166.     IRpcStubBuffer *This,
  18167.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18168.     PRPC_MESSAGE _pRpcMessage,
  18169.     DWORD *_pdwStubPhase);
  18170.  
  18171.  
  18172.  
  18173. #endif     /* __IWMBackupRestoreProps_INTERFACE_DEFINED__ */
  18174.  
  18175.  
  18176. #ifndef __IWMCodecInfo_INTERFACE_DEFINED__
  18177. #define __IWMCodecInfo_INTERFACE_DEFINED__
  18178.  
  18179. /* interface IWMCodecInfo */
  18180. /* [local][unique][helpstring][uuid][object] */ 
  18181.  
  18182.  
  18183. EXTERN_C const IID IID_IWMCodecInfo;
  18184.  
  18185. #if defined(__cplusplus) && !defined(CINTERFACE)
  18186.     
  18187.     MIDL_INTERFACE("A970F41E-34DE-4a98-B3BA-E4B3CA7528F0")
  18188.     IWMCodecInfo : public IUnknown
  18189.     {
  18190.     public:
  18191.         virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount( 
  18192.             /* [in] */ REFGUID guidType,
  18193.             /* [out] */ DWORD *pcCodecs) = 0;
  18194.         
  18195.         virtual HRESULT STDMETHODCALLTYPE GetCodecFormatCount( 
  18196.             /* [in] */ REFGUID guidType,
  18197.             /* [in] */ DWORD dwCodecIndex,
  18198.             /* [out] */ DWORD *pcFormat) = 0;
  18199.         
  18200.         virtual HRESULT STDMETHODCALLTYPE GetCodecFormat( 
  18201.             /* [in] */ REFGUID guidType,
  18202.             /* [in] */ DWORD dwCodecIndex,
  18203.             /* [in] */ DWORD dwFormatIndex,
  18204.             /* [out] */ IWMStreamConfig **ppIStreamConfig) = 0;
  18205.         
  18206.     };
  18207.     
  18208. #else     /* C style interface */
  18209.  
  18210.     typedef struct IWMCodecInfoVtbl
  18211.     {
  18212.         BEGIN_INTERFACE
  18213.         
  18214.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  18215.             IWMCodecInfo * This,
  18216.             /* [in] */ REFIID riid,
  18217.             /* [iid_is][out] */ void **ppvObject);
  18218.         
  18219.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  18220.             IWMCodecInfo * This);
  18221.         
  18222.         ULONG ( STDMETHODCALLTYPE *Release )( 
  18223.             IWMCodecInfo * This);
  18224.         
  18225.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfoCount )( 
  18226.             IWMCodecInfo * This,
  18227.             /* [in] */ REFGUID guidType,
  18228.             /* [out] */ DWORD *pcCodecs);
  18229.         
  18230.         HRESULT ( STDMETHODCALLTYPE *GetCodecFormatCount )( 
  18231.             IWMCodecInfo * This,
  18232.             /* [in] */ REFGUID guidType,
  18233.             /* [in] */ DWORD dwCodecIndex,
  18234.             /* [out] */ DWORD *pcFormat);
  18235.         
  18236.         HRESULT ( STDMETHODCALLTYPE *GetCodecFormat )( 
  18237.             IWMCodecInfo * This,
  18238.             /* [in] */ REFGUID guidType,
  18239.             /* [in] */ DWORD dwCodecIndex,
  18240.             /* [in] */ DWORD dwFormatIndex,
  18241.             /* [out] */ IWMStreamConfig **ppIStreamConfig);
  18242.         
  18243.         END_INTERFACE
  18244.     } IWMCodecInfoVtbl;
  18245.  
  18246.     interface IWMCodecInfo
  18247.     {
  18248.         CONST_VTBL struct IWMCodecInfoVtbl *lpVtbl;
  18249.     };
  18250.  
  18251.     
  18252.  
  18253. #ifdef COBJMACROS
  18254.  
  18255.  
  18256. #define IWMCodecInfo_QueryInterface(This,riid,ppvObject)    \
  18257.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  18258.  
  18259. #define IWMCodecInfo_AddRef(This)    \
  18260.     (This)->lpVtbl -> AddRef(This)
  18261.  
  18262. #define IWMCodecInfo_Release(This)    \
  18263.     (This)->lpVtbl -> Release(This)
  18264.  
  18265.  
  18266. #define IWMCodecInfo_GetCodecInfoCount(This,guidType,pcCodecs)    \
  18267.     (This)->lpVtbl -> GetCodecInfoCount(This,guidType,pcCodecs)
  18268.  
  18269. #define IWMCodecInfo_GetCodecFormatCount(This,guidType,dwCodecIndex,pcFormat)    \
  18270.     (This)->lpVtbl -> GetCodecFormatCount(This,guidType,dwCodecIndex,pcFormat)
  18271.  
  18272. #define IWMCodecInfo_GetCodecFormat(This,guidType,dwCodecIndex,dwFormatIndex,ppIStreamConfig)    \
  18273.     (This)->lpVtbl -> GetCodecFormat(This,guidType,dwCodecIndex,dwFormatIndex,ppIStreamConfig)
  18274.  
  18275. #endif /* COBJMACROS */
  18276.  
  18277.  
  18278. #endif     /* C style interface */
  18279.  
  18280.  
  18281.  
  18282. HRESULT STDMETHODCALLTYPE IWMCodecInfo_GetCodecInfoCount_Proxy( 
  18283.     IWMCodecInfo * This,
  18284.     /* [in] */ REFGUID guidType,
  18285.     /* [out] */ DWORD *pcCodecs);
  18286.  
  18287.  
  18288. void __RPC_STUB IWMCodecInfo_GetCodecInfoCount_Stub(
  18289.     IRpcStubBuffer *This,
  18290.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18291.     PRPC_MESSAGE _pRpcMessage,
  18292.     DWORD *_pdwStubPhase);
  18293.  
  18294.  
  18295. HRESULT STDMETHODCALLTYPE IWMCodecInfo_GetCodecFormatCount_Proxy( 
  18296.     IWMCodecInfo * This,
  18297.     /* [in] */ REFGUID guidType,
  18298.     /* [in] */ DWORD dwCodecIndex,
  18299.     /* [out] */ DWORD *pcFormat);
  18300.  
  18301.  
  18302. void __RPC_STUB IWMCodecInfo_GetCodecFormatCount_Stub(
  18303.     IRpcStubBuffer *This,
  18304.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18305.     PRPC_MESSAGE _pRpcMessage,
  18306.     DWORD *_pdwStubPhase);
  18307.  
  18308.  
  18309. HRESULT STDMETHODCALLTYPE IWMCodecInfo_GetCodecFormat_Proxy( 
  18310.     IWMCodecInfo * This,
  18311.     /* [in] */ REFGUID guidType,
  18312.     /* [in] */ DWORD dwCodecIndex,
  18313.     /* [in] */ DWORD dwFormatIndex,
  18314.     /* [out] */ IWMStreamConfig **ppIStreamConfig);
  18315.  
  18316.  
  18317. void __RPC_STUB IWMCodecInfo_GetCodecFormat_Stub(
  18318.     IRpcStubBuffer *This,
  18319.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18320.     PRPC_MESSAGE _pRpcMessage,
  18321.     DWORD *_pdwStubPhase);
  18322.  
  18323.  
  18324.  
  18325. #endif     /* __IWMCodecInfo_INTERFACE_DEFINED__ */
  18326.  
  18327.  
  18328. #ifndef __IWMCodecInfo2_INTERFACE_DEFINED__
  18329. #define __IWMCodecInfo2_INTERFACE_DEFINED__
  18330.  
  18331. /* interface IWMCodecInfo2 */
  18332. /* [local][unique][helpstring][uuid][object] */ 
  18333.  
  18334.  
  18335. EXTERN_C const IID IID_IWMCodecInfo2;
  18336.  
  18337. #if defined(__cplusplus) && !defined(CINTERFACE)
  18338.     
  18339.     MIDL_INTERFACE("AA65E273-B686-4056-91EC-DD768D4DF710")
  18340.     IWMCodecInfo2 : public IWMCodecInfo
  18341.     {
  18342.     public:
  18343.         virtual HRESULT STDMETHODCALLTYPE GetCodecName( 
  18344.             /* [in] */ REFGUID guidType,
  18345.             /* [in] */ DWORD dwCodecIndex,
  18346.             /* [size_is][out] */ WCHAR *wszName,
  18347.             /* [out][in] */ DWORD *pcchName) = 0;
  18348.         
  18349.         virtual HRESULT STDMETHODCALLTYPE GetCodecFormatDesc( 
  18350.             /* [in] */ REFGUID guidType,
  18351.             /* [in] */ DWORD dwCodecIndex,
  18352.             /* [in] */ DWORD dwFormatIndex,
  18353.             /* [out] */ IWMStreamConfig **ppIStreamConfig,
  18354.             /* [size_is][out] */ WCHAR *wszDesc,
  18355.             /* [out][in] */ DWORD *pcchDesc) = 0;
  18356.         
  18357.     };
  18358.     
  18359. #else     /* C style interface */
  18360.  
  18361.     typedef struct IWMCodecInfo2Vtbl
  18362.     {
  18363.         BEGIN_INTERFACE
  18364.         
  18365.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  18366.             IWMCodecInfo2 * This,
  18367.             /* [in] */ REFIID riid,
  18368.             /* [iid_is][out] */ void **ppvObject);
  18369.         
  18370.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  18371.             IWMCodecInfo2 * This);
  18372.         
  18373.         ULONG ( STDMETHODCALLTYPE *Release )( 
  18374.             IWMCodecInfo2 * This);
  18375.         
  18376.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfoCount )( 
  18377.             IWMCodecInfo2 * This,
  18378.             /* [in] */ REFGUID guidType,
  18379.             /* [out] */ DWORD *pcCodecs);
  18380.         
  18381.         HRESULT ( STDMETHODCALLTYPE *GetCodecFormatCount )( 
  18382.             IWMCodecInfo2 * This,
  18383.             /* [in] */ REFGUID guidType,
  18384.             /* [in] */ DWORD dwCodecIndex,
  18385.             /* [out] */ DWORD *pcFormat);
  18386.         
  18387.         HRESULT ( STDMETHODCALLTYPE *GetCodecFormat )( 
  18388.             IWMCodecInfo2 * This,
  18389.             /* [in] */ REFGUID guidType,
  18390.             /* [in] */ DWORD dwCodecIndex,
  18391.             /* [in] */ DWORD dwFormatIndex,
  18392.             /* [out] */ IWMStreamConfig **ppIStreamConfig);
  18393.         
  18394.         HRESULT ( STDMETHODCALLTYPE *GetCodecName )( 
  18395.             IWMCodecInfo2 * This,
  18396.             /* [in] */ REFGUID guidType,
  18397.             /* [in] */ DWORD dwCodecIndex,
  18398.             /* [size_is][out] */ WCHAR *wszName,
  18399.             /* [out][in] */ DWORD *pcchName);
  18400.         
  18401.         HRESULT ( STDMETHODCALLTYPE *GetCodecFormatDesc )( 
  18402.             IWMCodecInfo2 * This,
  18403.             /* [in] */ REFGUID guidType,
  18404.             /* [in] */ DWORD dwCodecIndex,
  18405.             /* [in] */ DWORD dwFormatIndex,
  18406.             /* [out] */ IWMStreamConfig **ppIStreamConfig,
  18407.             /* [size_is][out] */ WCHAR *wszDesc,
  18408.             /* [out][in] */ DWORD *pcchDesc);
  18409.         
  18410.         END_INTERFACE
  18411.     } IWMCodecInfo2Vtbl;
  18412.  
  18413.     interface IWMCodecInfo2
  18414.     {
  18415.         CONST_VTBL struct IWMCodecInfo2Vtbl *lpVtbl;
  18416.     };
  18417.  
  18418.     
  18419.  
  18420. #ifdef COBJMACROS
  18421.  
  18422.  
  18423. #define IWMCodecInfo2_QueryInterface(This,riid,ppvObject)    \
  18424.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  18425.  
  18426. #define IWMCodecInfo2_AddRef(This)    \
  18427.     (This)->lpVtbl -> AddRef(This)
  18428.  
  18429. #define IWMCodecInfo2_Release(This)    \
  18430.     (This)->lpVtbl -> Release(This)
  18431.  
  18432.  
  18433. #define IWMCodecInfo2_GetCodecInfoCount(This,guidType,pcCodecs)    \
  18434.     (This)->lpVtbl -> GetCodecInfoCount(This,guidType,pcCodecs)
  18435.  
  18436. #define IWMCodecInfo2_GetCodecFormatCount(This,guidType,dwCodecIndex,pcFormat)    \
  18437.     (This)->lpVtbl -> GetCodecFormatCount(This,guidType,dwCodecIndex,pcFormat)
  18438.  
  18439. #define IWMCodecInfo2_GetCodecFormat(This,guidType,dwCodecIndex,dwFormatIndex,ppIStreamConfig)    \
  18440.     (This)->lpVtbl -> GetCodecFormat(This,guidType,dwCodecIndex,dwFormatIndex,ppIStreamConfig)
  18441.  
  18442.  
  18443. #define IWMCodecInfo2_GetCodecName(This,guidType,dwCodecIndex,wszName,pcchName)    \
  18444.     (This)->lpVtbl -> GetCodecName(This,guidType,dwCodecIndex,wszName,pcchName)
  18445.  
  18446. #define IWMCodecInfo2_GetCodecFormatDesc(This,guidType,dwCodecIndex,dwFormatIndex,ppIStreamConfig,wszDesc,pcchDesc)    \
  18447.     (This)->lpVtbl -> GetCodecFormatDesc(This,guidType,dwCodecIndex,dwFormatIndex,ppIStreamConfig,wszDesc,pcchDesc)
  18448.  
  18449. #endif /* COBJMACROS */
  18450.  
  18451.  
  18452. #endif     /* C style interface */
  18453.  
  18454.  
  18455.  
  18456. HRESULT STDMETHODCALLTYPE IWMCodecInfo2_GetCodecName_Proxy( 
  18457.     IWMCodecInfo2 * This,
  18458.     /* [in] */ REFGUID guidType,
  18459.     /* [in] */ DWORD dwCodecIndex,
  18460.     /* [size_is][out] */ WCHAR *wszName,
  18461.     /* [out][in] */ DWORD *pcchName);
  18462.  
  18463.  
  18464. void __RPC_STUB IWMCodecInfo2_GetCodecName_Stub(
  18465.     IRpcStubBuffer *This,
  18466.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18467.     PRPC_MESSAGE _pRpcMessage,
  18468.     DWORD *_pdwStubPhase);
  18469.  
  18470.  
  18471. HRESULT STDMETHODCALLTYPE IWMCodecInfo2_GetCodecFormatDesc_Proxy( 
  18472.     IWMCodecInfo2 * This,
  18473.     /* [in] */ REFGUID guidType,
  18474.     /* [in] */ DWORD dwCodecIndex,
  18475.     /* [in] */ DWORD dwFormatIndex,
  18476.     /* [out] */ IWMStreamConfig **ppIStreamConfig,
  18477.     /* [size_is][out] */ WCHAR *wszDesc,
  18478.     /* [out][in] */ DWORD *pcchDesc);
  18479.  
  18480.  
  18481. void __RPC_STUB IWMCodecInfo2_GetCodecFormatDesc_Stub(
  18482.     IRpcStubBuffer *This,
  18483.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18484.     PRPC_MESSAGE _pRpcMessage,
  18485.     DWORD *_pdwStubPhase);
  18486.  
  18487.  
  18488.  
  18489. #endif     /* __IWMCodecInfo2_INTERFACE_DEFINED__ */
  18490.  
  18491.  
  18492. #ifndef __IWMCodecInfo3_INTERFACE_DEFINED__
  18493. #define __IWMCodecInfo3_INTERFACE_DEFINED__
  18494.  
  18495. /* interface IWMCodecInfo3 */
  18496. /* [local][unique][helpstring][uuid][object] */ 
  18497.  
  18498.  
  18499. EXTERN_C const IID IID_IWMCodecInfo3;
  18500.  
  18501. #if defined(__cplusplus) && !defined(CINTERFACE)
  18502.     
  18503.     MIDL_INTERFACE("7e51f487-4d93-4f98-8ab4-27d0565adc51")
  18504.     IWMCodecInfo3 : public IWMCodecInfo2
  18505.     {
  18506.     public:
  18507.         virtual HRESULT STDMETHODCALLTYPE GetCodecFormatProp( 
  18508.             /* [in] */ REFGUID guidType,
  18509.             /* [in] */ DWORD dwCodecIndex,
  18510.             /* [in] */ DWORD dwFormatIndex,
  18511.             /* [in] */ LPCWSTR pszName,
  18512.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  18513.             /* [size_is][out] */ BYTE *pValue,
  18514.             /* [out][in] */ DWORD *pdwSize) = 0;
  18515.         
  18516.         virtual HRESULT STDMETHODCALLTYPE GetCodecProp( 
  18517.             /* [in] */ REFGUID guidType,
  18518.             /* [in] */ DWORD dwCodecIndex,
  18519.             /* [in] */ LPCWSTR pszName,
  18520.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  18521.             /* [size_is][out] */ BYTE *pValue,
  18522.             /* [out][in] */ DWORD *pdwSize) = 0;
  18523.         
  18524.         virtual HRESULT STDMETHODCALLTYPE SetCodecEnumerationSetting( 
  18525.             /* [in] */ REFGUID guidType,
  18526.             /* [in] */ DWORD dwCodecIndex,
  18527.             /* [in] */ LPCWSTR pszName,
  18528.             /* [in] */ WMT_ATTR_DATATYPE Type,
  18529.             /* [size_is][in] */ const BYTE *pValue,
  18530.             /* [in] */ DWORD dwSize) = 0;
  18531.         
  18532.         virtual HRESULT STDMETHODCALLTYPE GetCodecEnumerationSetting( 
  18533.             /* [in] */ REFGUID guidType,
  18534.             /* [in] */ DWORD dwCodecIndex,
  18535.             /* [in] */ LPCWSTR pszName,
  18536.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  18537.             /* [size_is][out] */ BYTE *pValue,
  18538.             /* [out][in] */ DWORD *pdwSize) = 0;
  18539.         
  18540.     };
  18541.     
  18542. #else     /* C style interface */
  18543.  
  18544.     typedef struct IWMCodecInfo3Vtbl
  18545.     {
  18546.         BEGIN_INTERFACE
  18547.         
  18548.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  18549.             IWMCodecInfo3 * This,
  18550.             /* [in] */ REFIID riid,
  18551.             /* [iid_is][out] */ void **ppvObject);
  18552.         
  18553.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  18554.             IWMCodecInfo3 * This);
  18555.         
  18556.         ULONG ( STDMETHODCALLTYPE *Release )( 
  18557.             IWMCodecInfo3 * This);
  18558.         
  18559.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfoCount )( 
  18560.             IWMCodecInfo3 * This,
  18561.             /* [in] */ REFGUID guidType,
  18562.             /* [out] */ DWORD *pcCodecs);
  18563.         
  18564.         HRESULT ( STDMETHODCALLTYPE *GetCodecFormatCount )( 
  18565.             IWMCodecInfo3 * This,
  18566.             /* [in] */ REFGUID guidType,
  18567.             /* [in] */ DWORD dwCodecIndex,
  18568.             /* [out] */ DWORD *pcFormat);
  18569.         
  18570.         HRESULT ( STDMETHODCALLTYPE *GetCodecFormat )( 
  18571.             IWMCodecInfo3 * This,
  18572.             /* [in] */ REFGUID guidType,
  18573.             /* [in] */ DWORD dwCodecIndex,
  18574.             /* [in] */ DWORD dwFormatIndex,
  18575.             /* [out] */ IWMStreamConfig **ppIStreamConfig);
  18576.         
  18577.         HRESULT ( STDMETHODCALLTYPE *GetCodecName )( 
  18578.             IWMCodecInfo3 * This,
  18579.             /* [in] */ REFGUID guidType,
  18580.             /* [in] */ DWORD dwCodecIndex,
  18581.             /* [size_is][out] */ WCHAR *wszName,
  18582.             /* [out][in] */ DWORD *pcchName);
  18583.         
  18584.         HRESULT ( STDMETHODCALLTYPE *GetCodecFormatDesc )( 
  18585.             IWMCodecInfo3 * This,
  18586.             /* [in] */ REFGUID guidType,
  18587.             /* [in] */ DWORD dwCodecIndex,
  18588.             /* [in] */ DWORD dwFormatIndex,
  18589.             /* [out] */ IWMStreamConfig **ppIStreamConfig,
  18590.             /* [size_is][out] */ WCHAR *wszDesc,
  18591.             /* [out][in] */ DWORD *pcchDesc);
  18592.         
  18593.         HRESULT ( STDMETHODCALLTYPE *GetCodecFormatProp )( 
  18594.             IWMCodecInfo3 * This,
  18595.             /* [in] */ REFGUID guidType,
  18596.             /* [in] */ DWORD dwCodecIndex,
  18597.             /* [in] */ DWORD dwFormatIndex,
  18598.             /* [in] */ LPCWSTR pszName,
  18599.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  18600.             /* [size_is][out] */ BYTE *pValue,
  18601.             /* [out][in] */ DWORD *pdwSize);
  18602.         
  18603.         HRESULT ( STDMETHODCALLTYPE *GetCodecProp )( 
  18604.             IWMCodecInfo3 * This,
  18605.             /* [in] */ REFGUID guidType,
  18606.             /* [in] */ DWORD dwCodecIndex,
  18607.             /* [in] */ LPCWSTR pszName,
  18608.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  18609.             /* [size_is][out] */ BYTE *pValue,
  18610.             /* [out][in] */ DWORD *pdwSize);
  18611.         
  18612.         HRESULT ( STDMETHODCALLTYPE *SetCodecEnumerationSetting )( 
  18613.             IWMCodecInfo3 * This,
  18614.             /* [in] */ REFGUID guidType,
  18615.             /* [in] */ DWORD dwCodecIndex,
  18616.             /* [in] */ LPCWSTR pszName,
  18617.             /* [in] */ WMT_ATTR_DATATYPE Type,
  18618.             /* [size_is][in] */ const BYTE *pValue,
  18619.             /* [in] */ DWORD dwSize);
  18620.         
  18621.         HRESULT ( STDMETHODCALLTYPE *GetCodecEnumerationSetting )( 
  18622.             IWMCodecInfo3 * This,
  18623.             /* [in] */ REFGUID guidType,
  18624.             /* [in] */ DWORD dwCodecIndex,
  18625.             /* [in] */ LPCWSTR pszName,
  18626.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  18627.             /* [size_is][out] */ BYTE *pValue,
  18628.             /* [out][in] */ DWORD *pdwSize);
  18629.         
  18630.         END_INTERFACE
  18631.     } IWMCodecInfo3Vtbl;
  18632.  
  18633.     interface IWMCodecInfo3
  18634.     {
  18635.         CONST_VTBL struct IWMCodecInfo3Vtbl *lpVtbl;
  18636.     };
  18637.  
  18638.     
  18639.  
  18640. #ifdef COBJMACROS
  18641.  
  18642.  
  18643. #define IWMCodecInfo3_QueryInterface(This,riid,ppvObject)    \
  18644.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  18645.  
  18646. #define IWMCodecInfo3_AddRef(This)    \
  18647.     (This)->lpVtbl -> AddRef(This)
  18648.  
  18649. #define IWMCodecInfo3_Release(This)    \
  18650.     (This)->lpVtbl -> Release(This)
  18651.  
  18652.  
  18653. #define IWMCodecInfo3_GetCodecInfoCount(This,guidType,pcCodecs)    \
  18654.     (This)->lpVtbl -> GetCodecInfoCount(This,guidType,pcCodecs)
  18655.  
  18656. #define IWMCodecInfo3_GetCodecFormatCount(This,guidType,dwCodecIndex,pcFormat)    \
  18657.     (This)->lpVtbl -> GetCodecFormatCount(This,guidType,dwCodecIndex,pcFormat)
  18658.  
  18659. #define IWMCodecInfo3_GetCodecFormat(This,guidType,dwCodecIndex,dwFormatIndex,ppIStreamConfig)    \
  18660.     (This)->lpVtbl -> GetCodecFormat(This,guidType,dwCodecIndex,dwFormatIndex,ppIStreamConfig)
  18661.  
  18662.  
  18663. #define IWMCodecInfo3_GetCodecName(This,guidType,dwCodecIndex,wszName,pcchName)    \
  18664.     (This)->lpVtbl -> GetCodecName(This,guidType,dwCodecIndex,wszName,pcchName)
  18665.  
  18666. #define IWMCodecInfo3_GetCodecFormatDesc(This,guidType,dwCodecIndex,dwFormatIndex,ppIStreamConfig,wszDesc,pcchDesc)    \
  18667.     (This)->lpVtbl -> GetCodecFormatDesc(This,guidType,dwCodecIndex,dwFormatIndex,ppIStreamConfig,wszDesc,pcchDesc)
  18668.  
  18669.  
  18670. #define IWMCodecInfo3_GetCodecFormatProp(This,guidType,dwCodecIndex,dwFormatIndex,pszName,pType,pValue,pdwSize)    \
  18671.     (This)->lpVtbl -> GetCodecFormatProp(This,guidType,dwCodecIndex,dwFormatIndex,pszName,pType,pValue,pdwSize)
  18672.  
  18673. #define IWMCodecInfo3_GetCodecProp(This,guidType,dwCodecIndex,pszName,pType,pValue,pdwSize)    \
  18674.     (This)->lpVtbl -> GetCodecProp(This,guidType,dwCodecIndex,pszName,pType,pValue,pdwSize)
  18675.  
  18676. #define IWMCodecInfo3_SetCodecEnumerationSetting(This,guidType,dwCodecIndex,pszName,Type,pValue,dwSize)    \
  18677.     (This)->lpVtbl -> SetCodecEnumerationSetting(This,guidType,dwCodecIndex,pszName,Type,pValue,dwSize)
  18678.  
  18679. #define IWMCodecInfo3_GetCodecEnumerationSetting(This,guidType,dwCodecIndex,pszName,pType,pValue,pdwSize)    \
  18680.     (This)->lpVtbl -> GetCodecEnumerationSetting(This,guidType,dwCodecIndex,pszName,pType,pValue,pdwSize)
  18681.  
  18682. #endif /* COBJMACROS */
  18683.  
  18684.  
  18685. #endif     /* C style interface */
  18686.  
  18687.  
  18688.  
  18689. HRESULT STDMETHODCALLTYPE IWMCodecInfo3_GetCodecFormatProp_Proxy( 
  18690.     IWMCodecInfo3 * This,
  18691.     /* [in] */ REFGUID guidType,
  18692.     /* [in] */ DWORD dwCodecIndex,
  18693.     /* [in] */ DWORD dwFormatIndex,
  18694.     /* [in] */ LPCWSTR pszName,
  18695.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  18696.     /* [size_is][out] */ BYTE *pValue,
  18697.     /* [out][in] */ DWORD *pdwSize);
  18698.  
  18699.  
  18700. void __RPC_STUB IWMCodecInfo3_GetCodecFormatProp_Stub(
  18701.     IRpcStubBuffer *This,
  18702.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18703.     PRPC_MESSAGE _pRpcMessage,
  18704.     DWORD *_pdwStubPhase);
  18705.  
  18706.  
  18707. HRESULT STDMETHODCALLTYPE IWMCodecInfo3_GetCodecProp_Proxy( 
  18708.     IWMCodecInfo3 * This,
  18709.     /* [in] */ REFGUID guidType,
  18710.     /* [in] */ DWORD dwCodecIndex,
  18711.     /* [in] */ LPCWSTR pszName,
  18712.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  18713.     /* [size_is][out] */ BYTE *pValue,
  18714.     /* [out][in] */ DWORD *pdwSize);
  18715.  
  18716.  
  18717. void __RPC_STUB IWMCodecInfo3_GetCodecProp_Stub(
  18718.     IRpcStubBuffer *This,
  18719.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18720.     PRPC_MESSAGE _pRpcMessage,
  18721.     DWORD *_pdwStubPhase);
  18722.  
  18723.  
  18724. HRESULT STDMETHODCALLTYPE IWMCodecInfo3_SetCodecEnumerationSetting_Proxy( 
  18725.     IWMCodecInfo3 * This,
  18726.     /* [in] */ REFGUID guidType,
  18727.     /* [in] */ DWORD dwCodecIndex,
  18728.     /* [in] */ LPCWSTR pszName,
  18729.     /* [in] */ WMT_ATTR_DATATYPE Type,
  18730.     /* [size_is][in] */ const BYTE *pValue,
  18731.     /* [in] */ DWORD dwSize);
  18732.  
  18733.  
  18734. void __RPC_STUB IWMCodecInfo3_SetCodecEnumerationSetting_Stub(
  18735.     IRpcStubBuffer *This,
  18736.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18737.     PRPC_MESSAGE _pRpcMessage,
  18738.     DWORD *_pdwStubPhase);
  18739.  
  18740.  
  18741. HRESULT STDMETHODCALLTYPE IWMCodecInfo3_GetCodecEnumerationSetting_Proxy( 
  18742.     IWMCodecInfo3 * This,
  18743.     /* [in] */ REFGUID guidType,
  18744.     /* [in] */ DWORD dwCodecIndex,
  18745.     /* [in] */ LPCWSTR pszName,
  18746.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  18747.     /* [size_is][out] */ BYTE *pValue,
  18748.     /* [out][in] */ DWORD *pdwSize);
  18749.  
  18750.  
  18751. void __RPC_STUB IWMCodecInfo3_GetCodecEnumerationSetting_Stub(
  18752.     IRpcStubBuffer *This,
  18753.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18754.     PRPC_MESSAGE _pRpcMessage,
  18755.     DWORD *_pdwStubPhase);
  18756.  
  18757.  
  18758.  
  18759. #endif     /* __IWMCodecInfo3_INTERFACE_DEFINED__ */
  18760.  
  18761.  
  18762. #ifndef __IWMLanguageList_INTERFACE_DEFINED__
  18763. #define __IWMLanguageList_INTERFACE_DEFINED__
  18764.  
  18765. /* interface IWMLanguageList */
  18766. /* [local][unique][helpstring][uuid][object] */ 
  18767.  
  18768.  
  18769. EXTERN_C const IID IID_IWMLanguageList;
  18770.  
  18771. #if defined(__cplusplus) && !defined(CINTERFACE)
  18772.     
  18773.     MIDL_INTERFACE("DF683F00-2D49-4d8e-92B7-FB19F6A0DC57")
  18774.     IWMLanguageList : public IUnknown
  18775.     {
  18776.     public:
  18777.         virtual HRESULT STDMETHODCALLTYPE GetLanguageCount( 
  18778.             /* [out] */ WORD *pwCount) = 0;
  18779.         
  18780.         virtual HRESULT STDMETHODCALLTYPE GetLanguageDetails( 
  18781.             /* [in] */ WORD wIndex,
  18782.             /* [size_is][out] */ WCHAR *pwszLanguageString,
  18783.             /* [out][in] */ WORD *pcchLanguageStringLength) = 0;
  18784.         
  18785.         virtual HRESULT STDMETHODCALLTYPE AddLanguageByRFC1766String( 
  18786.             /* [in] */ LPWSTR pwszLanguageString,
  18787.             /* [out] */ WORD *pwIndex) = 0;
  18788.         
  18789.     };
  18790.     
  18791. #else     /* C style interface */
  18792.  
  18793.     typedef struct IWMLanguageListVtbl
  18794.     {
  18795.         BEGIN_INTERFACE
  18796.         
  18797.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  18798.             IWMLanguageList * This,
  18799.             /* [in] */ REFIID riid,
  18800.             /* [iid_is][out] */ void **ppvObject);
  18801.         
  18802.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  18803.             IWMLanguageList * This);
  18804.         
  18805.         ULONG ( STDMETHODCALLTYPE *Release )( 
  18806.             IWMLanguageList * This);
  18807.         
  18808.         HRESULT ( STDMETHODCALLTYPE *GetLanguageCount )( 
  18809.             IWMLanguageList * This,
  18810.             /* [out] */ WORD *pwCount);
  18811.         
  18812.         HRESULT ( STDMETHODCALLTYPE *GetLanguageDetails )( 
  18813.             IWMLanguageList * This,
  18814.             /* [in] */ WORD wIndex,
  18815.             /* [size_is][out] */ WCHAR *pwszLanguageString,
  18816.             /* [out][in] */ WORD *pcchLanguageStringLength);
  18817.         
  18818.         HRESULT ( STDMETHODCALLTYPE *AddLanguageByRFC1766String )( 
  18819.             IWMLanguageList * This,
  18820.             /* [in] */ LPWSTR pwszLanguageString,
  18821.             /* [out] */ WORD *pwIndex);
  18822.         
  18823.         END_INTERFACE
  18824.     } IWMLanguageListVtbl;
  18825.  
  18826.     interface IWMLanguageList
  18827.     {
  18828.         CONST_VTBL struct IWMLanguageListVtbl *lpVtbl;
  18829.     };
  18830.  
  18831.     
  18832.  
  18833. #ifdef COBJMACROS
  18834.  
  18835.  
  18836. #define IWMLanguageList_QueryInterface(This,riid,ppvObject)    \
  18837.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  18838.  
  18839. #define IWMLanguageList_AddRef(This)    \
  18840.     (This)->lpVtbl -> AddRef(This)
  18841.  
  18842. #define IWMLanguageList_Release(This)    \
  18843.     (This)->lpVtbl -> Release(This)
  18844.  
  18845.  
  18846. #define IWMLanguageList_GetLanguageCount(This,pwCount)    \
  18847.     (This)->lpVtbl -> GetLanguageCount(This,pwCount)
  18848.  
  18849. #define IWMLanguageList_GetLanguageDetails(This,wIndex,pwszLanguageString,pcchLanguageStringLength)    \
  18850.     (This)->lpVtbl -> GetLanguageDetails(This,wIndex,pwszLanguageString,pcchLanguageStringLength)
  18851.  
  18852. #define IWMLanguageList_AddLanguageByRFC1766String(This,pwszLanguageString,pwIndex)    \
  18853.     (This)->lpVtbl -> AddLanguageByRFC1766String(This,pwszLanguageString,pwIndex)
  18854.  
  18855. #endif /* COBJMACROS */
  18856.  
  18857.  
  18858. #endif     /* C style interface */
  18859.  
  18860.  
  18861.  
  18862. HRESULT STDMETHODCALLTYPE IWMLanguageList_GetLanguageCount_Proxy( 
  18863.     IWMLanguageList * This,
  18864.     /* [out] */ WORD *pwCount);
  18865.  
  18866.  
  18867. void __RPC_STUB IWMLanguageList_GetLanguageCount_Stub(
  18868.     IRpcStubBuffer *This,
  18869.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18870.     PRPC_MESSAGE _pRpcMessage,
  18871.     DWORD *_pdwStubPhase);
  18872.  
  18873.  
  18874. HRESULT STDMETHODCALLTYPE IWMLanguageList_GetLanguageDetails_Proxy( 
  18875.     IWMLanguageList * This,
  18876.     /* [in] */ WORD wIndex,
  18877.     /* [size_is][out] */ WCHAR *pwszLanguageString,
  18878.     /* [out][in] */ WORD *pcchLanguageStringLength);
  18879.  
  18880.  
  18881. void __RPC_STUB IWMLanguageList_GetLanguageDetails_Stub(
  18882.     IRpcStubBuffer *This,
  18883.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18884.     PRPC_MESSAGE _pRpcMessage,
  18885.     DWORD *_pdwStubPhase);
  18886.  
  18887.  
  18888. HRESULT STDMETHODCALLTYPE IWMLanguageList_AddLanguageByRFC1766String_Proxy( 
  18889.     IWMLanguageList * This,
  18890.     /* [in] */ LPWSTR pwszLanguageString,
  18891.     /* [out] */ WORD *pwIndex);
  18892.  
  18893.  
  18894. void __RPC_STUB IWMLanguageList_AddLanguageByRFC1766String_Stub(
  18895.     IRpcStubBuffer *This,
  18896.     IRpcChannelBuffer *_pRpcChannelBuffer,
  18897.     PRPC_MESSAGE _pRpcMessage,
  18898.     DWORD *_pdwStubPhase);
  18899.  
  18900.  
  18901.  
  18902. #endif     /* __IWMLanguageList_INTERFACE_DEFINED__ */
  18903.  
  18904.  
  18905. #ifndef __IWMWriterPushSink_INTERFACE_DEFINED__
  18906. #define __IWMWriterPushSink_INTERFACE_DEFINED__
  18907.  
  18908. /* interface IWMWriterPushSink */
  18909. /* [local][unique][helpstring][uuid][object] */ 
  18910.  
  18911.  
  18912. EXTERN_C const IID IID_IWMWriterPushSink;
  18913.  
  18914. #if defined(__cplusplus) && !defined(CINTERFACE)
  18915.     
  18916.     MIDL_INTERFACE("dc10e6a5-072c-467d-bf57-6330a9dde12a")
  18917.     IWMWriterPushSink : public IWMWriterSink
  18918.     {
  18919.     public:
  18920.         virtual HRESULT STDMETHODCALLTYPE Connect( 
  18921.             /* [in] */ LPCWSTR pwszURL,
  18922.             /* [in] */ LPCWSTR pwszTemplateURL,
  18923.             /* [in] */ BOOL fAutoDestroy) = 0;
  18924.         
  18925.         virtual HRESULT STDMETHODCALLTYPE Disconnect( void) = 0;
  18926.         
  18927.         virtual HRESULT STDMETHODCALLTYPE EndSession( void) = 0;
  18928.         
  18929.     };
  18930.     
  18931. #else     /* C style interface */
  18932.  
  18933.     typedef struct IWMWriterPushSinkVtbl
  18934.     {
  18935.         BEGIN_INTERFACE
  18936.         
  18937.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  18938.             IWMWriterPushSink * This,
  18939.             /* [in] */ REFIID riid,
  18940.             /* [iid_is][out] */ void **ppvObject);
  18941.         
  18942.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  18943.             IWMWriterPushSink * This);
  18944.         
  18945.         ULONG ( STDMETHODCALLTYPE *Release )( 
  18946.             IWMWriterPushSink * This);
  18947.         
  18948.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  18949.             IWMWriterPushSink * This,
  18950.             /* [in] */ INSSBuffer *pHeader);
  18951.         
  18952.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  18953.             IWMWriterPushSink * This,
  18954.             /* [out] */ BOOL *pfRealTime);
  18955.         
  18956.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  18957.             IWMWriterPushSink * This,
  18958.             /* [in] */ DWORD cbDataUnit,
  18959.             /* [out] */ INSSBuffer **ppDataUnit);
  18960.         
  18961.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  18962.             IWMWriterPushSink * This,
  18963.             /* [in] */ INSSBuffer *pDataUnit);
  18964.         
  18965.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  18966.             IWMWriterPushSink * This);
  18967.         
  18968.         HRESULT ( STDMETHODCALLTYPE *Connect )( 
  18969.             IWMWriterPushSink * This,
  18970.             /* [in] */ LPCWSTR pwszURL,
  18971.             /* [in] */ LPCWSTR pwszTemplateURL,
  18972.             /* [in] */ BOOL fAutoDestroy);
  18973.         
  18974.         HRESULT ( STDMETHODCALLTYPE *Disconnect )( 
  18975.             IWMWriterPushSink * This);
  18976.         
  18977.         HRESULT ( STDMETHODCALLTYPE *EndSession )( 
  18978.             IWMWriterPushSink * This);
  18979.         
  18980.         END_INTERFACE
  18981.     } IWMWriterPushSinkVtbl;
  18982.  
  18983.     interface IWMWriterPushSink
  18984.     {
  18985.         CONST_VTBL struct IWMWriterPushSinkVtbl *lpVtbl;
  18986.     };
  18987.  
  18988.     
  18989.  
  18990. #ifdef COBJMACROS
  18991.  
  18992.  
  18993. #define IWMWriterPushSink_QueryInterface(This,riid,ppvObject)    \
  18994.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  18995.  
  18996. #define IWMWriterPushSink_AddRef(This)    \
  18997.     (This)->lpVtbl -> AddRef(This)
  18998.  
  18999. #define IWMWriterPushSink_Release(This)    \
  19000.     (This)->lpVtbl -> Release(This)
  19001.  
  19002.  
  19003. #define IWMWriterPushSink_OnHeader(This,pHeader)    \
  19004.     (This)->lpVtbl -> OnHeader(This,pHeader)
  19005.  
  19006. #define IWMWriterPushSink_IsRealTime(This,pfRealTime)    \
  19007.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  19008.  
  19009. #define IWMWriterPushSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit)    \
  19010.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  19011.  
  19012. #define IWMWriterPushSink_OnDataUnit(This,pDataUnit)    \
  19013.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  19014.  
  19015. #define IWMWriterPushSink_OnEndWriting(This)    \
  19016.     (This)->lpVtbl -> OnEndWriting(This)
  19017.  
  19018.  
  19019. #define IWMWriterPushSink_Connect(This,pwszURL,pwszTemplateURL,fAutoDestroy)    \
  19020.     (This)->lpVtbl -> Connect(This,pwszURL,pwszTemplateURL,fAutoDestroy)
  19021.  
  19022. #define IWMWriterPushSink_Disconnect(This)    \
  19023.     (This)->lpVtbl -> Disconnect(This)
  19024.  
  19025. #define IWMWriterPushSink_EndSession(This)    \
  19026.     (This)->lpVtbl -> EndSession(This)
  19027.  
  19028. #endif /* COBJMACROS */
  19029.  
  19030.  
  19031. #endif     /* C style interface */
  19032.  
  19033.  
  19034.  
  19035. HRESULT STDMETHODCALLTYPE IWMWriterPushSink_Connect_Proxy( 
  19036.     IWMWriterPushSink * This,
  19037.     /* [in] */ LPCWSTR pwszURL,
  19038.     /* [in] */ LPCWSTR pwszTemplateURL,
  19039.     /* [in] */ BOOL fAutoDestroy);
  19040.  
  19041.  
  19042. void __RPC_STUB IWMWriterPushSink_Connect_Stub(
  19043.     IRpcStubBuffer *This,
  19044.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19045.     PRPC_MESSAGE _pRpcMessage,
  19046.     DWORD *_pdwStubPhase);
  19047.  
  19048.  
  19049. HRESULT STDMETHODCALLTYPE IWMWriterPushSink_Disconnect_Proxy( 
  19050.     IWMWriterPushSink * This);
  19051.  
  19052.  
  19053. void __RPC_STUB IWMWriterPushSink_Disconnect_Stub(
  19054.     IRpcStubBuffer *This,
  19055.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19056.     PRPC_MESSAGE _pRpcMessage,
  19057.     DWORD *_pdwStubPhase);
  19058.  
  19059.  
  19060. HRESULT STDMETHODCALLTYPE IWMWriterPushSink_EndSession_Proxy( 
  19061.     IWMWriterPushSink * This);
  19062.  
  19063.  
  19064. void __RPC_STUB IWMWriterPushSink_EndSession_Stub(
  19065.     IRpcStubBuffer *This,
  19066.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19067.     PRPC_MESSAGE _pRpcMessage,
  19068.     DWORD *_pdwStubPhase);
  19069.  
  19070.  
  19071.  
  19072. #endif     /* __IWMWriterPushSink_INTERFACE_DEFINED__ */
  19073.  
  19074.  
  19075. #ifndef __IWMWatermarkInfo_INTERFACE_DEFINED__
  19076. #define __IWMWatermarkInfo_INTERFACE_DEFINED__
  19077.  
  19078. /* interface IWMWatermarkInfo */
  19079. /* [local][unique][helpstring][uuid][object] */ 
  19080.  
  19081.  
  19082. EXTERN_C const IID IID_IWMWatermarkInfo;
  19083.  
  19084. #if defined(__cplusplus) && !defined(CINTERFACE)
  19085.     
  19086.     MIDL_INTERFACE("6f497062-f2e2-4624-8ea7-9dd40d81fc8d")
  19087.     IWMWatermarkInfo : public IUnknown
  19088.     {
  19089.     public:
  19090.         virtual HRESULT STDMETHODCALLTYPE GetWatermarkEntryCount( 
  19091.             /* [in] */ WMT_WATERMARK_ENTRY_TYPE wmetType,
  19092.             /* [out] */ DWORD *pdwCount) = 0;
  19093.         
  19094.         virtual HRESULT STDMETHODCALLTYPE GetWatermarkEntry( 
  19095.             /* [in] */ WMT_WATERMARK_ENTRY_TYPE wmetType,
  19096.             /* [in] */ DWORD dwEntryNum,
  19097.             /* [out] */ WMT_WATERMARK_ENTRY *pEntry) = 0;
  19098.         
  19099.     };
  19100.     
  19101. #else     /* C style interface */
  19102.  
  19103.     typedef struct IWMWatermarkInfoVtbl
  19104.     {
  19105.         BEGIN_INTERFACE
  19106.         
  19107.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  19108.             IWMWatermarkInfo * This,
  19109.             /* [in] */ REFIID riid,
  19110.             /* [iid_is][out] */ void **ppvObject);
  19111.         
  19112.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  19113.             IWMWatermarkInfo * This);
  19114.         
  19115.         ULONG ( STDMETHODCALLTYPE *Release )( 
  19116.             IWMWatermarkInfo * This);
  19117.         
  19118.         HRESULT ( STDMETHODCALLTYPE *GetWatermarkEntryCount )( 
  19119.             IWMWatermarkInfo * This,
  19120.             /* [in] */ WMT_WATERMARK_ENTRY_TYPE wmetType,
  19121.             /* [out] */ DWORD *pdwCount);
  19122.         
  19123.         HRESULT ( STDMETHODCALLTYPE *GetWatermarkEntry )( 
  19124.             IWMWatermarkInfo * This,
  19125.             /* [in] */ WMT_WATERMARK_ENTRY_TYPE wmetType,
  19126.             /* [in] */ DWORD dwEntryNum,
  19127.             /* [out] */ WMT_WATERMARK_ENTRY *pEntry);
  19128.         
  19129.         END_INTERFACE
  19130.     } IWMWatermarkInfoVtbl;
  19131.  
  19132.     interface IWMWatermarkInfo
  19133.     {
  19134.         CONST_VTBL struct IWMWatermarkInfoVtbl *lpVtbl;
  19135.     };
  19136.  
  19137.     
  19138.  
  19139. #ifdef COBJMACROS
  19140.  
  19141.  
  19142. #define IWMWatermarkInfo_QueryInterface(This,riid,ppvObject)    \
  19143.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  19144.  
  19145. #define IWMWatermarkInfo_AddRef(This)    \
  19146.     (This)->lpVtbl -> AddRef(This)
  19147.  
  19148. #define IWMWatermarkInfo_Release(This)    \
  19149.     (This)->lpVtbl -> Release(This)
  19150.  
  19151.  
  19152. #define IWMWatermarkInfo_GetWatermarkEntryCount(This,wmetType,pdwCount)    \
  19153.     (This)->lpVtbl -> GetWatermarkEntryCount(This,wmetType,pdwCount)
  19154.  
  19155. #define IWMWatermarkInfo_GetWatermarkEntry(This,wmetType,dwEntryNum,pEntry)    \
  19156.     (This)->lpVtbl -> GetWatermarkEntry(This,wmetType,dwEntryNum,pEntry)
  19157.  
  19158. #endif /* COBJMACROS */
  19159.  
  19160.  
  19161. #endif     /* C style interface */
  19162.  
  19163.  
  19164.  
  19165. HRESULT STDMETHODCALLTYPE IWMWatermarkInfo_GetWatermarkEntryCount_Proxy( 
  19166.     IWMWatermarkInfo * This,
  19167.     /* [in] */ WMT_WATERMARK_ENTRY_TYPE wmetType,
  19168.     /* [out] */ DWORD *pdwCount);
  19169.  
  19170.  
  19171. void __RPC_STUB IWMWatermarkInfo_GetWatermarkEntryCount_Stub(
  19172.     IRpcStubBuffer *This,
  19173.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19174.     PRPC_MESSAGE _pRpcMessage,
  19175.     DWORD *_pdwStubPhase);
  19176.  
  19177.  
  19178. HRESULT STDMETHODCALLTYPE IWMWatermarkInfo_GetWatermarkEntry_Proxy( 
  19179.     IWMWatermarkInfo * This,
  19180.     /* [in] */ WMT_WATERMARK_ENTRY_TYPE wmetType,
  19181.     /* [in] */ DWORD dwEntryNum,
  19182.     /* [out] */ WMT_WATERMARK_ENTRY *pEntry);
  19183.  
  19184.  
  19185. void __RPC_STUB IWMWatermarkInfo_GetWatermarkEntry_Stub(
  19186.     IRpcStubBuffer *This,
  19187.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19188.     PRPC_MESSAGE _pRpcMessage,
  19189.     DWORD *_pdwStubPhase);
  19190.  
  19191.  
  19192.  
  19193. #endif     /* __IWMWatermarkInfo_INTERFACE_DEFINED__ */
  19194.  
  19195.  
  19196. #ifndef __IWMReaderAccelerator_INTERFACE_DEFINED__
  19197. #define __IWMReaderAccelerator_INTERFACE_DEFINED__
  19198.  
  19199. /* interface IWMReaderAccelerator */
  19200. /* [local][unique][helpstring][uuid][object] */ 
  19201.  
  19202.  
  19203. EXTERN_C const IID IID_IWMReaderAccelerator;
  19204.  
  19205. #if defined(__cplusplus) && !defined(CINTERFACE)
  19206.     
  19207.     MIDL_INTERFACE("BDDC4D08-944D-4d52-A612-46C3FDA07DD4")
  19208.     IWMReaderAccelerator : public IUnknown
  19209.     {
  19210.     public:
  19211.         virtual HRESULT STDMETHODCALLTYPE GetCodecInterface( 
  19212.             /* [in] */ DWORD dwOutputNum,
  19213.             /* [in] */ REFIID riid,
  19214.             /* [out] */ void **ppvCodecInterface) = 0;
  19215.         
  19216.         virtual HRESULT STDMETHODCALLTYPE Notify( 
  19217.             /* [in] */ DWORD dwOutputNum,
  19218.             /* [in] */ WM_MEDIA_TYPE *pSubtype) = 0;
  19219.         
  19220.     };
  19221.     
  19222. #else     /* C style interface */
  19223.  
  19224.     typedef struct IWMReaderAcceleratorVtbl
  19225.     {
  19226.         BEGIN_INTERFACE
  19227.         
  19228.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  19229.             IWMReaderAccelerator * This,
  19230.             /* [in] */ REFIID riid,
  19231.             /* [iid_is][out] */ void **ppvObject);
  19232.         
  19233.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  19234.             IWMReaderAccelerator * This);
  19235.         
  19236.         ULONG ( STDMETHODCALLTYPE *Release )( 
  19237.             IWMReaderAccelerator * This);
  19238.         
  19239.         HRESULT ( STDMETHODCALLTYPE *GetCodecInterface )( 
  19240.             IWMReaderAccelerator * This,
  19241.             /* [in] */ DWORD dwOutputNum,
  19242.             /* [in] */ REFIID riid,
  19243.             /* [out] */ void **ppvCodecInterface);
  19244.         
  19245.         HRESULT ( STDMETHODCALLTYPE *Notify )( 
  19246.             IWMReaderAccelerator * This,
  19247.             /* [in] */ DWORD dwOutputNum,
  19248.             /* [in] */ WM_MEDIA_TYPE *pSubtype);
  19249.         
  19250.         END_INTERFACE
  19251.     } IWMReaderAcceleratorVtbl;
  19252.  
  19253.     interface IWMReaderAccelerator
  19254.     {
  19255.         CONST_VTBL struct IWMReaderAcceleratorVtbl *lpVtbl;
  19256.     };
  19257.  
  19258.     
  19259.  
  19260. #ifdef COBJMACROS
  19261.  
  19262.  
  19263. #define IWMReaderAccelerator_QueryInterface(This,riid,ppvObject)    \
  19264.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  19265.  
  19266. #define IWMReaderAccelerator_AddRef(This)    \
  19267.     (This)->lpVtbl -> AddRef(This)
  19268.  
  19269. #define IWMReaderAccelerator_Release(This)    \
  19270.     (This)->lpVtbl -> Release(This)
  19271.  
  19272.  
  19273. #define IWMReaderAccelerator_GetCodecInterface(This,dwOutputNum,riid,ppvCodecInterface)    \
  19274.     (This)->lpVtbl -> GetCodecInterface(This,dwOutputNum,riid,ppvCodecInterface)
  19275.  
  19276. #define IWMReaderAccelerator_Notify(This,dwOutputNum,pSubtype)    \
  19277.     (This)->lpVtbl -> Notify(This,dwOutputNum,pSubtype)
  19278.  
  19279. #endif /* COBJMACROS */
  19280.  
  19281.  
  19282. #endif     /* C style interface */
  19283.  
  19284.  
  19285.  
  19286. HRESULT STDMETHODCALLTYPE IWMReaderAccelerator_GetCodecInterface_Proxy( 
  19287.     IWMReaderAccelerator * This,
  19288.     /* [in] */ DWORD dwOutputNum,
  19289.     /* [in] */ REFIID riid,
  19290.     /* [out] */ void **ppvCodecInterface);
  19291.  
  19292.  
  19293. void __RPC_STUB IWMReaderAccelerator_GetCodecInterface_Stub(
  19294.     IRpcStubBuffer *This,
  19295.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19296.     PRPC_MESSAGE _pRpcMessage,
  19297.     DWORD *_pdwStubPhase);
  19298.  
  19299.  
  19300. HRESULT STDMETHODCALLTYPE IWMReaderAccelerator_Notify_Proxy( 
  19301.     IWMReaderAccelerator * This,
  19302.     /* [in] */ DWORD dwOutputNum,
  19303.     /* [in] */ WM_MEDIA_TYPE *pSubtype);
  19304.  
  19305.  
  19306. void __RPC_STUB IWMReaderAccelerator_Notify_Stub(
  19307.     IRpcStubBuffer *This,
  19308.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19309.     PRPC_MESSAGE _pRpcMessage,
  19310.     DWORD *_pdwStubPhase);
  19311.  
  19312.  
  19313.  
  19314. #endif     /* __IWMReaderAccelerator_INTERFACE_DEFINED__ */
  19315.  
  19316.  
  19317. #ifndef __IWMReaderTimecode_INTERFACE_DEFINED__
  19318. #define __IWMReaderTimecode_INTERFACE_DEFINED__
  19319.  
  19320. /* interface IWMReaderTimecode */
  19321. /* [local][unique][helpstring][uuid][object] */ 
  19322.  
  19323.  
  19324. EXTERN_C const IID IID_IWMReaderTimecode;
  19325.  
  19326. #if defined(__cplusplus) && !defined(CINTERFACE)
  19327.     
  19328.     MIDL_INTERFACE("f369e2f0-e081-4fe6-8450-b810b2f410d1")
  19329.     IWMReaderTimecode : public IUnknown
  19330.     {
  19331.     public:
  19332.         virtual HRESULT STDMETHODCALLTYPE GetTimecodeRangeCount( 
  19333.             /* [in] */ WORD wStreamNum,
  19334.             /* [out] */ WORD *pwRangeCount) = 0;
  19335.         
  19336.         virtual HRESULT STDMETHODCALLTYPE GetTimecodeRangeBounds( 
  19337.             /* [in] */ WORD wStreamNum,
  19338.             /* [in] */ WORD wRangeNum,
  19339.             /* [out] */ DWORD *pStartTimecode,
  19340.             /* [out] */ DWORD *pEndTimecode) = 0;
  19341.         
  19342.     };
  19343.     
  19344. #else     /* C style interface */
  19345.  
  19346.     typedef struct IWMReaderTimecodeVtbl
  19347.     {
  19348.         BEGIN_INTERFACE
  19349.         
  19350.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  19351.             IWMReaderTimecode * This,
  19352.             /* [in] */ REFIID riid,
  19353.             /* [iid_is][out] */ void **ppvObject);
  19354.         
  19355.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  19356.             IWMReaderTimecode * This);
  19357.         
  19358.         ULONG ( STDMETHODCALLTYPE *Release )( 
  19359.             IWMReaderTimecode * This);
  19360.         
  19361.         HRESULT ( STDMETHODCALLTYPE *GetTimecodeRangeCount )( 
  19362.             IWMReaderTimecode * This,
  19363.             /* [in] */ WORD wStreamNum,
  19364.             /* [out] */ WORD *pwRangeCount);
  19365.         
  19366.         HRESULT ( STDMETHODCALLTYPE *GetTimecodeRangeBounds )( 
  19367.             IWMReaderTimecode * This,
  19368.             /* [in] */ WORD wStreamNum,
  19369.             /* [in] */ WORD wRangeNum,
  19370.             /* [out] */ DWORD *pStartTimecode,
  19371.             /* [out] */ DWORD *pEndTimecode);
  19372.         
  19373.         END_INTERFACE
  19374.     } IWMReaderTimecodeVtbl;
  19375.  
  19376.     interface IWMReaderTimecode
  19377.     {
  19378.         CONST_VTBL struct IWMReaderTimecodeVtbl *lpVtbl;
  19379.     };
  19380.  
  19381.     
  19382.  
  19383. #ifdef COBJMACROS
  19384.  
  19385.  
  19386. #define IWMReaderTimecode_QueryInterface(This,riid,ppvObject)    \
  19387.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  19388.  
  19389. #define IWMReaderTimecode_AddRef(This)    \
  19390.     (This)->lpVtbl -> AddRef(This)
  19391.  
  19392. #define IWMReaderTimecode_Release(This)    \
  19393.     (This)->lpVtbl -> Release(This)
  19394.  
  19395.  
  19396. #define IWMReaderTimecode_GetTimecodeRangeCount(This,wStreamNum,pwRangeCount)    \
  19397.     (This)->lpVtbl -> GetTimecodeRangeCount(This,wStreamNum,pwRangeCount)
  19398.  
  19399. #define IWMReaderTimecode_GetTimecodeRangeBounds(This,wStreamNum,wRangeNum,pStartTimecode,pEndTimecode)    \
  19400.     (This)->lpVtbl -> GetTimecodeRangeBounds(This,wStreamNum,wRangeNum,pStartTimecode,pEndTimecode)
  19401.  
  19402. #endif /* COBJMACROS */
  19403.  
  19404.  
  19405. #endif     /* C style interface */
  19406.  
  19407.  
  19408.  
  19409. HRESULT STDMETHODCALLTYPE IWMReaderTimecode_GetTimecodeRangeCount_Proxy( 
  19410.     IWMReaderTimecode * This,
  19411.     /* [in] */ WORD wStreamNum,
  19412.     /* [out] */ WORD *pwRangeCount);
  19413.  
  19414.  
  19415. void __RPC_STUB IWMReaderTimecode_GetTimecodeRangeCount_Stub(
  19416.     IRpcStubBuffer *This,
  19417.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19418.     PRPC_MESSAGE _pRpcMessage,
  19419.     DWORD *_pdwStubPhase);
  19420.  
  19421.  
  19422. HRESULT STDMETHODCALLTYPE IWMReaderTimecode_GetTimecodeRangeBounds_Proxy( 
  19423.     IWMReaderTimecode * This,
  19424.     /* [in] */ WORD wStreamNum,
  19425.     /* [in] */ WORD wRangeNum,
  19426.     /* [out] */ DWORD *pStartTimecode,
  19427.     /* [out] */ DWORD *pEndTimecode);
  19428.  
  19429.  
  19430. void __RPC_STUB IWMReaderTimecode_GetTimecodeRangeBounds_Stub(
  19431.     IRpcStubBuffer *This,
  19432.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19433.     PRPC_MESSAGE _pRpcMessage,
  19434.     DWORD *_pdwStubPhase);
  19435.  
  19436.  
  19437.  
  19438. #endif     /* __IWMReaderTimecode_INTERFACE_DEFINED__ */
  19439.  
  19440.  
  19441. #ifndef __IWMAddressAccess_INTERFACE_DEFINED__
  19442. #define __IWMAddressAccess_INTERFACE_DEFINED__
  19443.  
  19444. /* interface IWMAddressAccess */
  19445. /* [local][unique][helpstring][uuid][object] */ 
  19446.  
  19447.  
  19448. EXTERN_C const IID IID_IWMAddressAccess;
  19449.  
  19450. #if defined(__cplusplus) && !defined(CINTERFACE)
  19451.     
  19452.     MIDL_INTERFACE("BB3C6389-1633-4e92-AF14-9F3173BA39D0")
  19453.     IWMAddressAccess : public IUnknown
  19454.     {
  19455.     public:
  19456.         virtual HRESULT STDMETHODCALLTYPE GetAccessEntryCount( 
  19457.             /* [in] */ WM_AETYPE aeType,
  19458.             /* [out] */ DWORD *pcEntries) = 0;
  19459.         
  19460.         virtual HRESULT STDMETHODCALLTYPE GetAccessEntry( 
  19461.             /* [in] */ WM_AETYPE aeType,
  19462.             /* [in] */ DWORD dwEntryNum,
  19463.             /* [out] */ WM_ADDRESS_ACCESSENTRY *pAddrAccessEntry) = 0;
  19464.         
  19465.         virtual HRESULT STDMETHODCALLTYPE AddAccessEntry( 
  19466.             /* [in] */ WM_AETYPE aeType,
  19467.             /* [in] */ WM_ADDRESS_ACCESSENTRY *pAddrAccessEntry) = 0;
  19468.         
  19469.         virtual HRESULT STDMETHODCALLTYPE RemoveAccessEntry( 
  19470.             /* [in] */ WM_AETYPE aeType,
  19471.             /* [in] */ DWORD dwEntryNum) = 0;
  19472.         
  19473.     };
  19474.     
  19475. #else     /* C style interface */
  19476.  
  19477.     typedef struct IWMAddressAccessVtbl
  19478.     {
  19479.         BEGIN_INTERFACE
  19480.         
  19481.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  19482.             IWMAddressAccess * This,
  19483.             /* [in] */ REFIID riid,
  19484.             /* [iid_is][out] */ void **ppvObject);
  19485.         
  19486.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  19487.             IWMAddressAccess * This);
  19488.         
  19489.         ULONG ( STDMETHODCALLTYPE *Release )( 
  19490.             IWMAddressAccess * This);
  19491.         
  19492.         HRESULT ( STDMETHODCALLTYPE *GetAccessEntryCount )( 
  19493.             IWMAddressAccess * This,
  19494.             /* [in] */ WM_AETYPE aeType,
  19495.             /* [out] */ DWORD *pcEntries);
  19496.         
  19497.         HRESULT ( STDMETHODCALLTYPE *GetAccessEntry )( 
  19498.             IWMAddressAccess * This,
  19499.             /* [in] */ WM_AETYPE aeType,
  19500.             /* [in] */ DWORD dwEntryNum,
  19501.             /* [out] */ WM_ADDRESS_ACCESSENTRY *pAddrAccessEntry);
  19502.         
  19503.         HRESULT ( STDMETHODCALLTYPE *AddAccessEntry )( 
  19504.             IWMAddressAccess * This,
  19505.             /* [in] */ WM_AETYPE aeType,
  19506.             /* [in] */ WM_ADDRESS_ACCESSENTRY *pAddrAccessEntry);
  19507.         
  19508.         HRESULT ( STDMETHODCALLTYPE *RemoveAccessEntry )( 
  19509.             IWMAddressAccess * This,
  19510.             /* [in] */ WM_AETYPE aeType,
  19511.             /* [in] */ DWORD dwEntryNum);
  19512.         
  19513.         END_INTERFACE
  19514.     } IWMAddressAccessVtbl;
  19515.  
  19516.     interface IWMAddressAccess
  19517.     {
  19518.         CONST_VTBL struct IWMAddressAccessVtbl *lpVtbl;
  19519.     };
  19520.  
  19521.     
  19522.  
  19523. #ifdef COBJMACROS
  19524.  
  19525.  
  19526. #define IWMAddressAccess_QueryInterface(This,riid,ppvObject)    \
  19527.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  19528.  
  19529. #define IWMAddressAccess_AddRef(This)    \
  19530.     (This)->lpVtbl -> AddRef(This)
  19531.  
  19532. #define IWMAddressAccess_Release(This)    \
  19533.     (This)->lpVtbl -> Release(This)
  19534.  
  19535.  
  19536. #define IWMAddressAccess_GetAccessEntryCount(This,aeType,pcEntries)    \
  19537.     (This)->lpVtbl -> GetAccessEntryCount(This,aeType,pcEntries)
  19538.  
  19539. #define IWMAddressAccess_GetAccessEntry(This,aeType,dwEntryNum,pAddrAccessEntry)    \
  19540.     (This)->lpVtbl -> GetAccessEntry(This,aeType,dwEntryNum,pAddrAccessEntry)
  19541.  
  19542. #define IWMAddressAccess_AddAccessEntry(This,aeType,pAddrAccessEntry)    \
  19543.     (This)->lpVtbl -> AddAccessEntry(This,aeType,pAddrAccessEntry)
  19544.  
  19545. #define IWMAddressAccess_RemoveAccessEntry(This,aeType,dwEntryNum)    \
  19546.     (This)->lpVtbl -> RemoveAccessEntry(This,aeType,dwEntryNum)
  19547.  
  19548. #endif /* COBJMACROS */
  19549.  
  19550.  
  19551. #endif     /* C style interface */
  19552.  
  19553.  
  19554.  
  19555. HRESULT STDMETHODCALLTYPE IWMAddressAccess_GetAccessEntryCount_Proxy( 
  19556.     IWMAddressAccess * This,
  19557.     /* [in] */ WM_AETYPE aeType,
  19558.     /* [out] */ DWORD *pcEntries);
  19559.  
  19560.  
  19561. void __RPC_STUB IWMAddressAccess_GetAccessEntryCount_Stub(
  19562.     IRpcStubBuffer *This,
  19563.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19564.     PRPC_MESSAGE _pRpcMessage,
  19565.     DWORD *_pdwStubPhase);
  19566.  
  19567.  
  19568. HRESULT STDMETHODCALLTYPE IWMAddressAccess_GetAccessEntry_Proxy( 
  19569.     IWMAddressAccess * This,
  19570.     /* [in] */ WM_AETYPE aeType,
  19571.     /* [in] */ DWORD dwEntryNum,
  19572.     /* [out] */ WM_ADDRESS_ACCESSENTRY *pAddrAccessEntry);
  19573.  
  19574.  
  19575. void __RPC_STUB IWMAddressAccess_GetAccessEntry_Stub(
  19576.     IRpcStubBuffer *This,
  19577.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19578.     PRPC_MESSAGE _pRpcMessage,
  19579.     DWORD *_pdwStubPhase);
  19580.  
  19581.  
  19582. HRESULT STDMETHODCALLTYPE IWMAddressAccess_AddAccessEntry_Proxy( 
  19583.     IWMAddressAccess * This,
  19584.     /* [in] */ WM_AETYPE aeType,
  19585.     /* [in] */ WM_ADDRESS_ACCESSENTRY *pAddrAccessEntry);
  19586.  
  19587.  
  19588. void __RPC_STUB IWMAddressAccess_AddAccessEntry_Stub(
  19589.     IRpcStubBuffer *This,
  19590.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19591.     PRPC_MESSAGE _pRpcMessage,
  19592.     DWORD *_pdwStubPhase);
  19593.  
  19594.  
  19595. HRESULT STDMETHODCALLTYPE IWMAddressAccess_RemoveAccessEntry_Proxy( 
  19596.     IWMAddressAccess * This,
  19597.     /* [in] */ WM_AETYPE aeType,
  19598.     /* [in] */ DWORD dwEntryNum);
  19599.  
  19600.  
  19601. void __RPC_STUB IWMAddressAccess_RemoveAccessEntry_Stub(
  19602.     IRpcStubBuffer *This,
  19603.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19604.     PRPC_MESSAGE _pRpcMessage,
  19605.     DWORD *_pdwStubPhase);
  19606.  
  19607.  
  19608.  
  19609. #endif     /* __IWMAddressAccess_INTERFACE_DEFINED__ */
  19610.  
  19611.  
  19612. #ifndef __IWMAddressAccess2_INTERFACE_DEFINED__
  19613. #define __IWMAddressAccess2_INTERFACE_DEFINED__
  19614.  
  19615. /* interface IWMAddressAccess2 */
  19616. /* [local][unique][helpstring][uuid][object] */ 
  19617.  
  19618.  
  19619. EXTERN_C const IID IID_IWMAddressAccess2;
  19620.  
  19621. #if defined(__cplusplus) && !defined(CINTERFACE)
  19622.     
  19623.     MIDL_INTERFACE("65a83fc2-3e98-4d4d-81b5-2a742886b33d")
  19624.     IWMAddressAccess2 : public IWMAddressAccess
  19625.     {
  19626.     public:
  19627.         virtual HRESULT STDMETHODCALLTYPE GetAccessEntryEx( 
  19628.             /* [in] */ WM_AETYPE aeType,
  19629.             /* [in] */ DWORD dwEntryNum,
  19630.             /* [out] */ BSTR *pbstrAddress,
  19631.             /* [out] */ BSTR *pbstrMask) = 0;
  19632.         
  19633.         virtual HRESULT STDMETHODCALLTYPE AddAccessEntryEx( 
  19634.             /* [in] */ WM_AETYPE aeType,
  19635.             /* [in] */ BSTR bstrAddress,
  19636.             /* [in] */ BSTR bstrMask) = 0;
  19637.         
  19638.     };
  19639.     
  19640. #else     /* C style interface */
  19641.  
  19642.     typedef struct IWMAddressAccess2Vtbl
  19643.     {
  19644.         BEGIN_INTERFACE
  19645.         
  19646.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  19647.             IWMAddressAccess2 * This,
  19648.             /* [in] */ REFIID riid,
  19649.             /* [iid_is][out] */ void **ppvObject);
  19650.         
  19651.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  19652.             IWMAddressAccess2 * This);
  19653.         
  19654.         ULONG ( STDMETHODCALLTYPE *Release )( 
  19655.             IWMAddressAccess2 * This);
  19656.         
  19657.         HRESULT ( STDMETHODCALLTYPE *GetAccessEntryCount )( 
  19658.             IWMAddressAccess2 * This,
  19659.             /* [in] */ WM_AETYPE aeType,
  19660.             /* [out] */ DWORD *pcEntries);
  19661.         
  19662.         HRESULT ( STDMETHODCALLTYPE *GetAccessEntry )( 
  19663.             IWMAddressAccess2 * This,
  19664.             /* [in] */ WM_AETYPE aeType,
  19665.             /* [in] */ DWORD dwEntryNum,
  19666.             /* [out] */ WM_ADDRESS_ACCESSENTRY *pAddrAccessEntry);
  19667.         
  19668.         HRESULT ( STDMETHODCALLTYPE *AddAccessEntry )( 
  19669.             IWMAddressAccess2 * This,
  19670.             /* [in] */ WM_AETYPE aeType,
  19671.             /* [in] */ WM_ADDRESS_ACCESSENTRY *pAddrAccessEntry);
  19672.         
  19673.         HRESULT ( STDMETHODCALLTYPE *RemoveAccessEntry )( 
  19674.             IWMAddressAccess2 * This,
  19675.             /* [in] */ WM_AETYPE aeType,
  19676.             /* [in] */ DWORD dwEntryNum);
  19677.         
  19678.         HRESULT ( STDMETHODCALLTYPE *GetAccessEntryEx )( 
  19679.             IWMAddressAccess2 * This,
  19680.             /* [in] */ WM_AETYPE aeType,
  19681.             /* [in] */ DWORD dwEntryNum,
  19682.             /* [out] */ BSTR *pbstrAddress,
  19683.             /* [out] */ BSTR *pbstrMask);
  19684.         
  19685.         HRESULT ( STDMETHODCALLTYPE *AddAccessEntryEx )( 
  19686.             IWMAddressAccess2 * This,
  19687.             /* [in] */ WM_AETYPE aeType,
  19688.             /* [in] */ BSTR bstrAddress,
  19689.             /* [in] */ BSTR bstrMask);
  19690.         
  19691.         END_INTERFACE
  19692.     } IWMAddressAccess2Vtbl;
  19693.  
  19694.     interface IWMAddressAccess2
  19695.     {
  19696.         CONST_VTBL struct IWMAddressAccess2Vtbl *lpVtbl;
  19697.     };
  19698.  
  19699.     
  19700.  
  19701. #ifdef COBJMACROS
  19702.  
  19703.  
  19704. #define IWMAddressAccess2_QueryInterface(This,riid,ppvObject)    \
  19705.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  19706.  
  19707. #define IWMAddressAccess2_AddRef(This)    \
  19708.     (This)->lpVtbl -> AddRef(This)
  19709.  
  19710. #define IWMAddressAccess2_Release(This)    \
  19711.     (This)->lpVtbl -> Release(This)
  19712.  
  19713.  
  19714. #define IWMAddressAccess2_GetAccessEntryCount(This,aeType,pcEntries)    \
  19715.     (This)->lpVtbl -> GetAccessEntryCount(This,aeType,pcEntries)
  19716.  
  19717. #define IWMAddressAccess2_GetAccessEntry(This,aeType,dwEntryNum,pAddrAccessEntry)    \
  19718.     (This)->lpVtbl -> GetAccessEntry(This,aeType,dwEntryNum,pAddrAccessEntry)
  19719.  
  19720. #define IWMAddressAccess2_AddAccessEntry(This,aeType,pAddrAccessEntry)    \
  19721.     (This)->lpVtbl -> AddAccessEntry(This,aeType,pAddrAccessEntry)
  19722.  
  19723. #define IWMAddressAccess2_RemoveAccessEntry(This,aeType,dwEntryNum)    \
  19724.     (This)->lpVtbl -> RemoveAccessEntry(This,aeType,dwEntryNum)
  19725.  
  19726.  
  19727. #define IWMAddressAccess2_GetAccessEntryEx(This,aeType,dwEntryNum,pbstrAddress,pbstrMask)    \
  19728.     (This)->lpVtbl -> GetAccessEntryEx(This,aeType,dwEntryNum,pbstrAddress,pbstrMask)
  19729.  
  19730. #define IWMAddressAccess2_AddAccessEntryEx(This,aeType,bstrAddress,bstrMask)    \
  19731.     (This)->lpVtbl -> AddAccessEntryEx(This,aeType,bstrAddress,bstrMask)
  19732.  
  19733. #endif /* COBJMACROS */
  19734.  
  19735.  
  19736. #endif     /* C style interface */
  19737.  
  19738.  
  19739.  
  19740. HRESULT STDMETHODCALLTYPE IWMAddressAccess2_GetAccessEntryEx_Proxy( 
  19741.     IWMAddressAccess2 * This,
  19742.     /* [in] */ WM_AETYPE aeType,
  19743.     /* [in] */ DWORD dwEntryNum,
  19744.     /* [out] */ BSTR *pbstrAddress,
  19745.     /* [out] */ BSTR *pbstrMask);
  19746.  
  19747.  
  19748. void __RPC_STUB IWMAddressAccess2_GetAccessEntryEx_Stub(
  19749.     IRpcStubBuffer *This,
  19750.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19751.     PRPC_MESSAGE _pRpcMessage,
  19752.     DWORD *_pdwStubPhase);
  19753.  
  19754.  
  19755. HRESULT STDMETHODCALLTYPE IWMAddressAccess2_AddAccessEntryEx_Proxy( 
  19756.     IWMAddressAccess2 * This,
  19757.     /* [in] */ WM_AETYPE aeType,
  19758.     /* [in] */ BSTR bstrAddress,
  19759.     /* [in] */ BSTR bstrMask);
  19760.  
  19761.  
  19762. void __RPC_STUB IWMAddressAccess2_AddAccessEntryEx_Stub(
  19763.     IRpcStubBuffer *This,
  19764.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19765.     PRPC_MESSAGE _pRpcMessage,
  19766.     DWORD *_pdwStubPhase);
  19767.  
  19768.  
  19769.  
  19770. #endif     /* __IWMAddressAccess2_INTERFACE_DEFINED__ */
  19771.  
  19772.  
  19773. #ifndef __IWMImageInfo_INTERFACE_DEFINED__
  19774. #define __IWMImageInfo_INTERFACE_DEFINED__
  19775.  
  19776. /* interface IWMImageInfo */
  19777. /* [local][unique][helpstring][uuid][object] */ 
  19778.  
  19779.  
  19780. EXTERN_C const IID IID_IWMImageInfo;
  19781.  
  19782. #if defined(__cplusplus) && !defined(CINTERFACE)
  19783.     
  19784.     MIDL_INTERFACE("9F0AA3B6-7267-4d89-88F2-BA915AA5C4C6")
  19785.     IWMImageInfo : public IUnknown
  19786.     {
  19787.     public:
  19788.         virtual HRESULT STDMETHODCALLTYPE GetImageCount( 
  19789.             /* [out] */ DWORD *pcImages) = 0;
  19790.         
  19791.         virtual HRESULT STDMETHODCALLTYPE GetImage( 
  19792.             /* [in] */ DWORD wIndex,
  19793.             /* [out][in] */ WORD *pcchMIMEType,
  19794.             /* [size_is][out] */ WCHAR *pwszMIMEType,
  19795.             /* [out][in] */ WORD *pcchDescription,
  19796.             /* [size_is][out] */ WCHAR *pwszDescription,
  19797.             /* [out] */ WORD *pImageType,
  19798.             /* [out][in] */ DWORD *pcbImageData,
  19799.             /* [size_is][out] */ BYTE *pbImageData) = 0;
  19800.         
  19801.     };
  19802.     
  19803. #else     /* C style interface */
  19804.  
  19805.     typedef struct IWMImageInfoVtbl
  19806.     {
  19807.         BEGIN_INTERFACE
  19808.         
  19809.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  19810.             IWMImageInfo * This,
  19811.             /* [in] */ REFIID riid,
  19812.             /* [iid_is][out] */ void **ppvObject);
  19813.         
  19814.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  19815.             IWMImageInfo * This);
  19816.         
  19817.         ULONG ( STDMETHODCALLTYPE *Release )( 
  19818.             IWMImageInfo * This);
  19819.         
  19820.         HRESULT ( STDMETHODCALLTYPE *GetImageCount )( 
  19821.             IWMImageInfo * This,
  19822.             /* [out] */ DWORD *pcImages);
  19823.         
  19824.         HRESULT ( STDMETHODCALLTYPE *GetImage )( 
  19825.             IWMImageInfo * This,
  19826.             /* [in] */ DWORD wIndex,
  19827.             /* [out][in] */ WORD *pcchMIMEType,
  19828.             /* [size_is][out] */ WCHAR *pwszMIMEType,
  19829.             /* [out][in] */ WORD *pcchDescription,
  19830.             /* [size_is][out] */ WCHAR *pwszDescription,
  19831.             /* [out] */ WORD *pImageType,
  19832.             /* [out][in] */ DWORD *pcbImageData,
  19833.             /* [size_is][out] */ BYTE *pbImageData);
  19834.         
  19835.         END_INTERFACE
  19836.     } IWMImageInfoVtbl;
  19837.  
  19838.     interface IWMImageInfo
  19839.     {
  19840.         CONST_VTBL struct IWMImageInfoVtbl *lpVtbl;
  19841.     };
  19842.  
  19843.     
  19844.  
  19845. #ifdef COBJMACROS
  19846.  
  19847.  
  19848. #define IWMImageInfo_QueryInterface(This,riid,ppvObject)    \
  19849.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  19850.  
  19851. #define IWMImageInfo_AddRef(This)    \
  19852.     (This)->lpVtbl -> AddRef(This)
  19853.  
  19854. #define IWMImageInfo_Release(This)    \
  19855.     (This)->lpVtbl -> Release(This)
  19856.  
  19857.  
  19858. #define IWMImageInfo_GetImageCount(This,pcImages)    \
  19859.     (This)->lpVtbl -> GetImageCount(This,pcImages)
  19860.  
  19861. #define IWMImageInfo_GetImage(This,wIndex,pcchMIMEType,pwszMIMEType,pcchDescription,pwszDescription,pImageType,pcbImageData,pbImageData)    \
  19862.     (This)->lpVtbl -> GetImage(This,wIndex,pcchMIMEType,pwszMIMEType,pcchDescription,pwszDescription,pImageType,pcbImageData,pbImageData)
  19863.  
  19864. #endif /* COBJMACROS */
  19865.  
  19866.  
  19867. #endif     /* C style interface */
  19868.  
  19869.  
  19870.  
  19871. HRESULT STDMETHODCALLTYPE IWMImageInfo_GetImageCount_Proxy( 
  19872.     IWMImageInfo * This,
  19873.     /* [out] */ DWORD *pcImages);
  19874.  
  19875.  
  19876. void __RPC_STUB IWMImageInfo_GetImageCount_Stub(
  19877.     IRpcStubBuffer *This,
  19878.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19879.     PRPC_MESSAGE _pRpcMessage,
  19880.     DWORD *_pdwStubPhase);
  19881.  
  19882.  
  19883. HRESULT STDMETHODCALLTYPE IWMImageInfo_GetImage_Proxy( 
  19884.     IWMImageInfo * This,
  19885.     /* [in] */ DWORD wIndex,
  19886.     /* [out][in] */ WORD *pcchMIMEType,
  19887.     /* [size_is][out] */ WCHAR *pwszMIMEType,
  19888.     /* [out][in] */ WORD *pcchDescription,
  19889.     /* [size_is][out] */ WCHAR *pwszDescription,
  19890.     /* [out] */ WORD *pImageType,
  19891.     /* [out][in] */ DWORD *pcbImageData,
  19892.     /* [size_is][out] */ BYTE *pbImageData);
  19893.  
  19894.  
  19895. void __RPC_STUB IWMImageInfo_GetImage_Stub(
  19896.     IRpcStubBuffer *This,
  19897.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19898.     PRPC_MESSAGE _pRpcMessage,
  19899.     DWORD *_pdwStubPhase);
  19900.  
  19901.  
  19902.  
  19903. #endif     /* __IWMImageInfo_INTERFACE_DEFINED__ */
  19904.  
  19905.  
  19906. /* Additional Prototypes for ALL interfaces */
  19907.  
  19908. /* end of Additional Prototypes */
  19909.  
  19910. #ifdef __cplusplus
  19911. }
  19912. #endif
  19913.  
  19914. #endif
  19915.  
  19916.  
  19917.